25
1)Zip public class Zip { public static void zip(String Fs, String d) throws IOException { File f= new File(Fs); if(!f.exists())return; if(f.isDirectory()){ DataOutputStream dos= new DataOutputStream(new BufferedOutputStream(new FileOutputStream(d))); File []list= f.listFiles(); int i; for (File f1 : list) { DataInputStream dis= new DataInputStream(new BufferedInputStream(new FileInputStream(f1))); dos.writeLong(f1.length()); dos.writeUTF(f1.getName()); while((i=dis.read())!=-1){ dos.write(i); } dis.close(); } dos.flush(); dos.close(); } } public static void uzip(String s, String fd) throws IOException { File f= new File(s); if(!f.exists())return; if(f.isFile()){ int i; DataInputStream dis= new DataInputStream(new BufferedInputStream(new FileInputStream(f))); try { DataOutputStream dos; out:while(true){ long len; len = dis.readLong(); String name=dis.readUTF(); System.out.println(name); dos= new DataOutputStream(new BufferedOutputStream(new FileOutputStream(fd+"\\"+name))); LẬP TRÌNH MẠNG

Ltm

Embed Size (px)

Citation preview

Page 1: Ltm

1) Zippublic class Zip {

public static void zip(String Fs, String d) throws IOException {File f= new File(Fs);if(!f.exists())return;if(f.isDirectory()){

DataOutputStream dos= new DataOutputStream(new BufferedOutputStream(new FileOutputStream(d)));

File []list= f.listFiles();int i;for (File f1 : list) {

DataInputStream dis= new DataInputStream(new BufferedInputStream(new FileInputStream(f1)));

dos.writeLong(f1.length());dos.writeUTF(f1.getName());

while((i=dis.read())!=-1){dos.write(i);

}dis.close();

}dos.flush();dos.close();

}

}

public static void uzip(String s, String fd) throws IOException {File f= new File(s);if(!f.exists())return;if(f.isFile()){

int i;DataInputStream dis= new DataInputStream(new

BufferedInputStream(new FileInputStream(f)));try {DataOutputStream dos;out:while(true){

long len;len = dis.readLong();

String name=dis.readUTF();System.out.println(name);dos= new DataOutputStream(new

BufferedOutputStream(new FileOutputStream(fd+"\\"+name)));while(true){

i=dis.read();if(i==-1)break out;dos.write(i);len--;if(len==0)break;

}dos.close();

}

L P TRÌNH M NGẬ Ạ

Page 2: Ltm

} catch (IOException e) {

}dis.close();

}}

public static void main(String[] args) throws IOException {// zip("d:\\test", "d:\\test1\\out.zip");

uzip( "d:\\test1\\out.zip", "d:\\test\\out");}}

2) SinhVienManagepublic class SinhVienManage {

ArrayList<SinhVien> list;

public SinhVienManage(ArrayList<SinhVien> list) {this.list = list;

}

public void exportsv(String path) throws Exception {DataOutputStream dos = new DataOutputStream(new

FileOutputStream(path));for (int i = 0; i < list.size(); i++) {

dos.writeChars(convert(list.get(i).getName()));dos.writeInt(list.get(i).getMssv());dos.writeInt(list.get(i).getOld());dos.writeDouble(list.get(i).getScore());

}dos.flush();dos.close();

}

public void importsv(String path) {DataInputStream dis=null;try {

dis = new DataInputStream(new FileInputStream(path));} catch (FileNotFoundException e) {}SinhVien sv = new SinhVien();byte[] t = new byte[84];String name = "";while (true) {

try {dis.read(t);name = new String(t);sv.setName(name);sv.setMssv(dis.readInt());sv.setOld(dis.readInt());sv.setScore(dis.readDouble());

Page 3: Ltm

System.out.println(sv);} catch (IOException e) {

break;}

}

}

public String convert(String s) {char t = 0;if (s.length() < 42) {

for (int i = s.length(); i < 42; i++) {s += t;

}} else {

s = s.substring(0, 42);}return s;

}

public static void main(String[] args) throws Exception {SinhVien sv1 = new SinhVien("abc", 12345, 20, 10);SinhVien sv2 = new SinhVien("abc1", 12346, 30, 8);SinhVien sv3 = new SinhVien("abc2", 12344, 50, 9);ArrayList<SinhVien> l = new ArrayList<SinhVien>();l.add(sv1);l.add(sv2);l.add(sv3);SinhVienManage svm = new SinhVienManage(l);

// svm.exportsv("d:\\test\\sv.txt");svm.importsv("d:\\test\\sv.txt");

}

}

3) SinhVien1

public class SinhVien1 { String name; int mssv; int old; double score;

public SinhVien1() {}

public SinhVien1(String name, int mssv, int old, double score) { super(); this.name = name; this.mssv = mssv; this.old = old; this.score = score;

Page 4: Ltm

}

public void write(DataOutput out) throws IOException { out.writeChars(convert(getName())); out.writeInt(getMssv()); out.writeInt(getOld()); out.writeDouble(getScore()); } public void read(DataInput in) throws IOException { byte[] t = new byte[84]; String name = ""; ((InputStream) in).read(t); name = new String(t); setName(name); setMssv(in.readInt()); setOld(in.readInt()); setScore(in.readDouble()); } public void write(PrintWriter out) { out.println(this); } public void read(BufferedReader in) throws IOException { StringTokenizer token=new StringTokenizer(in.readLine(),"-"); setName(token.nextToken()); setMssv(Integer.parseInt(token.nextToken())); setOld(Integer.parseInt(token.nextToken())); setScore(Double.parseDouble(token.nextToken())); }

public String getName() { return name; }

public void setName(String name) { this.name = name; }

public int getMssv() { return mssv; }

public void setMssv(int mssv) { this.mssv = mssv; }

public int getOld() { return old; }

public void setOld(int old) { this.old = old; }

public double getScore() {

Page 5: Ltm

return score; }

public void setScore(double score) { this.score = score; } private String convert(String s) { char t = 0; if (s.length() < 40) { for (int i = s.length(); i < 40; i++) { s += t; } } else { s = s.substring(0, 40); } return s; } private String reconvert(String s){ String out=""; char ch=0; for(char c:s.toCharArray()){ if(ch!=c)out+=c; } return out; }

@Override public String toString() { return name + " - " + mssv + " - " + old + " - " + score; }

}

4) Socket

a) Clientpublic class Client { public static String CLIENT_PATH="d:\\test\\client"; public static int PORT=1234; DataInputStream dis; BufferedOutputStream bos;// BufferedReader br;// PrintWriter pw; public Client() throws IOException { Socket socket= new Socket("127.0.0.1",PORT); System.out.println("Ket noi thanh cong");// dis= new DataInputStream(new BufferedInputStream(socket.getInputStream())); long size=dis.readLong(); String name=dis.readUTF();

Page 6: Ltm

bos= new BufferedOutputStream(new FileOutputStream(CLIENT_PATH+"\\"+name));// long byteReaded=0; int byteMustRead=(size-byteReaded)>10240?10240:(int)(size-byteReaded); byte []buffer= new byte[byteMustRead]; int i; while(byteMustRead!=0){ i=dis.read(buffer); bos.write(buffer, 0, i); byteReaded+=i; byteMustRead=(size-byteReaded)>10240?10240:(int)(size-byteReaded); buffer= new byte[byteMustRead]; } bos.flush(); bos.close(); dis.close(); } public static void main(String[] args) throws IOException { new Client(); }}

b) Server public class Server { public static String SERVER_PATH = "E:\\may ao\\ubuntu 01(12.10)\\Ubuntu 01.vmdk"; public static int PORT = 1234; DataOutputStream dos; BufferedInputStream bis;

public Server() throws IOException { ServerSocket ss = new ServerSocket(PORT); System.out.println("Waiting..."); Socket socket = ss.accept(); System.out.println("Connected.");// File f = new File(SERVER_PATH);// dos = new DataOutputStream(new BufferedOutputStream(socket.getOutputStream())); bis = new BufferedInputStream(new FileInputStream(f)); long size=f.length(); dos.writeLong(size); dos.flush(); dos.writeUTF(f.getName()); dos.flush(); long byteReaded=0; int byteMustRead=(size-byteReaded)>10240?10240:(int)(size-byteReaded); byte []buffer= new byte[byteMustRead]; int i; while(byteMustRead!=0){ i=bis.read(buffer); dos.write(buffer, 0, i);

Page 7: Ltm

dos.flush(); byteReaded+=i; byteMustRead=(size-byteReaded)>10240?10240:(int)(size-byteReaded); buffer= new byte[byteMustRead]; }// bis.close(); dos.flush(); dos.close(); socket.close(); }

public static void main(String[] args) throws IOException { new Server(); }}

5) JDBCpublic class ODBC { public static void main(String[] args) { try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");// String database = "jdbc:odbc:SV;"; Connection conn;// conn = DriverManager.getConnection(database); conn = DriverManager .getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=D:\\working\\2013 - 2014\\hoc ky 2\\Bai Tap\\LTM\\JDBC\\SV.accdb"); Statement s = conn.createStatement(); s.execute("INSERT INTO [user] ( username, pass )SELECT 'abcDE' AS Expr1, '1234' AS Expr2;"); ResultSet rs = s.executeQuery("select * from user"); while (rs.next()) { System.out.print(rs.getString(1)+ " - "); System.out.println(rs.getString(2)); }

} catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }}

6) RMI

a) Client Uploadpublic class Client {

Page 8: Ltm

public static void main(String[] args) throws NotBoundException, IOException { Registry regis = LocateRegistry.getRegistry(12345); Remote remote = regis.lookup("copy"); ICopy copy = (ICopy) remote; File src = new File("D:\\test\\a.mpg"); BufferedInputStream in = new BufferedInputStream(new FileInputStream(src)); copy.creadFile("D:\\test\\b.mpg"); byte[] array= new byte[1024]; int c; while ((c=in.read(array)) != -1) { copy.contend(array,c); } copy.closeFile(); }

}

b) Copy Clientpublic class client { public static void main(String[] args) throws NotBoundException, IOException { Registry r= LocateRegistry.getRegistry(12345); Copy c=(Copy) r.lookup("Copy"); BufferedOutputStream bos= new BufferedOutputStream(new FileOutputStream("D:\\test\\c.mpg")); c.copy("D:\\test\\a.mpg"); byte[] data; while((data=c.sendData())!=null){ bos.write(data); } c.closeFile();bos.close(); }}

c) Copy Server

copypublic interface Copy extends Remote { public void copy (String s) throws RemoteException; public byte[] sendData() throws RemoteException; public void closeFile() throws RemoteException;

}

Severpublic class Server { public static void main(String[] args) throws RemoteException { Registry rg = LocateRegistry.createRegistry(12345); Copy c = new copyIm();

Page 9: Ltm

rg.rebind("Copy", c); }}

CopyImpublic class copyIm extends UnicastRemoteObject implements Copy{ BufferedInputStream bis;

protected copyIm() throws RemoteException { super(); // TODO Auto-generated constructor stub }

/** * */ private static final long serialVersionUID = -329587034347766967L;

@Override public void copy(String s) throws RemoteException { try { bis = new BufferedInputStream(new FileInputStream(s)); } catch (FileNotFoundException e) { throw new RemoteException(); } }

@Override public byte[] sendData() throws RemoteException{ byte[] d = new byte[1024]; int i; try { i= bis.read(d); if (i==-1) return null; byte [] con = new byte [i]; System.arraycopy(d, 0, con, 0, i); return con; } catch (IOException e) { return null; } }

@Override public void closeFile() throws RemoteException { try { bis.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace();

Page 10: Ltm

} }

}

d) Copy client 1public class Client { public static void main(String[] args) throws NotBoundException, IOException { Registry reg = LocateRegistry.getRegistry("127.0.0.1", 12345); Copy copy = (Copy) reg.lookup("copy"); BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(new File("D:\\test\\b.DAT"))); int index = copy.openFile("D:\\test\\a.DAT"); byte data[]; while((data =copy.readFile(index))!=null){ bos.write(data); } bos.close(); copy.closeFile(index);}

}

e) Copy server 1

copypublic class Client { public static void main(String[] args) throws NotBoundException, IOException { Registry reg = LocateRegistry.getRegistry("127.0.0.1", 12345); Copy copy = (Copy) reg.lookup("copy"); BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(new File("D:\\test\\b.DAT"))); int index = copy.openFile("D:\\test\\a.DAT"); byte data[]; while((data =copy.readFile(index))!=null){ bos.write(data); } bos.close(); copy.closeFile(index);}

}

server

public class Server {

public static void main(String[] args) throws RemoteException, AlreadyBoundException {

Page 11: Ltm

Registry reg = LocateRegistry.createRegistry(12345); Copy copy =new copyImp(); reg.bind("copy", copy);

}

}

copyImp

public class copyImp extends UnicastRemoteObject implements Copy{ private ArrayList<BufferedInputStream> fileList = new ArrayList<>(); protected copyImp() throws RemoteException { super(); // TODO Auto-generated constructor stub }

/** * */ private static final long serialVersionUID = 1L;

@Override public int openFile(String file) throws RemoteException { BufferedInputStream bis; try { bis = new BufferedInputStream(new FileInputStream(file)); fileList.add(bis); } catch (FileNotFoundException e) { return -1; } return fileList.size()-1; }

@Override public byte[] readFile(int index) throws RemoteException { byte[] data = new byte[1024]; int c; try { if((c = fileList.get(index).read(data))!=-1){ if(c==1024) return data; else{ byte[] tmp =null; System.arraycopy(data, 0, tmp, 0, c); return tmp; } } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }

Page 12: Ltm

return null; }

@Override public void closeFile(int index) throws RemoteException { try { fileList.get(index).close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }

}

f) RMIClientpublic class Client { public static void main(String[] args) throws RemoteException, NotBoundException { Registry r= LocateRegistry.getRegistry("127.0.0.1",12345); Echo e= (Echo) r.lookup("echo"); System.out.println(e.echo(12312123+"")); }}

g) RMIServer

Echopublic interface Echo extends Remote{ public String echo(String s) throws RemoteException;

}

Echo Imppublic class EchoImp extends UnicastRemoteObject implements Echo{

protected EchoImp() throws RemoteException { super(); }

private static final long serialVersionUID = 1L;

@Override public String echo(String s) throws RemoteException { return "Xuấts: "+s; }

}

Page 13: Ltm

Sever public class Server { public static void main(String[] args) throws RemoteException { Registry r= LocateRegistry.createRegistry(12345); Echo e= new EchoImp(); r.rebind("echo", e); System.out.println("Server start"); }

}

7) POP3

a) Clientpublic class Client {

public static void main(String[] args) throws UnknownHostException, IOException { Socket socket = new Socket("localhost", 1234); BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream())); BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); PrintWriter pw = new PrintWriter(socket.getOutputStream(), true); PrintWriter out = new PrintWriter(System.out, true); System.out.println("Connected."); pw.println("Connected."); System.out.println(br.readLine()); String data; while(true){ data=in.readLine(); pw.println(data); data=br.readLine(); out.println(data); } }}

b) Serverpublic class Server { Socket socket; BufferedReader br; PrintWriter pw; String user = "", pass = "";

public Server() throws IOException { ServerSocket ss = new ServerSocket(1234); System.out.println("Waiting..."); socket = ss.accept(); br = new BufferedReader(new InputStreamReader(socket.getInputStream())); pw = new PrintWriter(socket.getOutputStream(), true);

Page 14: Ltm

System.out.println(br.readLine()); pw.println("Bạn hãy đăng nháºp"); processLogin(br, pw); // hàm làm chức năng đăng nháºp

}

private void processLogin(BufferedReader br, PrintWriter pw) throws IOException { String command, action, data; StringTokenizer token; while (true) { command = br.readLine(); token = new StringTokenizer(command); action = token.nextToken(); if (action.equalsIgnoreCase("user")) { data = token.nextToken(); if (UserDAO.check(data)) { pw.println("OK"); } else { pw.println("User không tồn tại"); } this.user=data; } if (action.equalsIgnoreCase("pass")) { data = token.nextToken(); if (UserDAO.check(this.user,data)) { pw.println("Äăng nháº� p thành công!"); return; } else { pw.println("Äăng nháº� p không thành công!"); } this.pass=data; } }

}

public static void main(String[] args) throws IOException { new Server(); }

}

c) Client 1public class Client1 { public static void main(String[] args) throws IOException { Socket socket = new Socket("localhost", 1234); System.out.println("Connected."); BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream())); BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); PrintWriter pw = new PrintWriter(socket.getOutputStream(), true); PrintWriter out = new PrintWriter(System.out, true); String command,data;

Page 15: Ltm

out.println(br.readLine()); while(true){ command=in.readLine(); pw.println(command); data=br.readLine(); out.println(data); if(data.equalsIgnoreCase("Dang nhap thanh cong"))break; } while (true) { command = in.readLine(); pw.println(command); if (command.equalsIgnoreCase("exit")) break; command = br.readLine();// out.println(command); int count=Integer.parseInt(command); for(int i=0;i<count;i++){ command = br.readLine(); out.println(command); } } in.close(); out.close(); pw.close(); br.close(); socket.close();

}}

d) Server1public class Server2 { Socket socket; BufferedReader br; PrintWriter pw; String user="",pass="";

public Server2() throws Exception { ServerSocket ss = new ServerSocket(1234); System.out.println("Waiting..."); socket = ss.accept(); System.out.println("Connected."); // xuly while (true) { br = new BufferedReader(new InputStreamReader(socket.getInputStream())); pw = new PrintWriter(socket.getOutputStream(), true); pw.println("Hay dang nhap"); processLogin(br, pw); process(br, pw); br.close(); pw.close(); socket.close();

Page 16: Ltm

} // dong ket noi // br.close(); }

private void processLogin(BufferedReader br, PrintWriter pw) throws IOException { String command; StringTokenizer token; String action,data; while(true){ command=br.readLine(); token= new StringTokenizer(command); action=token.nextToken(); if(action.equalsIgnoreCase("user")){ data=token.nextToken(); this.user=data; if(UserDAO.check(this.user)){ pw.println("OK"); }else{ pw.println("User khong ton tai"); } continue; }else if(action.equalsIgnoreCase("pass")){ data=token.nextToken(); this.pass=data; if(UserDAO.check(this.user,this.pass)){ pw.println("Dang nhap thanh cong"); return; }else{ pw.println("Dang nhap khong thanh cong"); } }else continue; } }

private void process(BufferedReader br, PrintWriter pw) throws Exception { String command; ArrayList<SinhVien> list = null; while (true) { command = br.readLine(); StringTokenizer token = new StringTokenizer(command, " "); String action=token.nextToken(); if (action.equalsIgnoreCase("findbyname")) { list=SinhVienDAO.findByName(token.nextToken()); } else if (action.equalsIgnoreCase("findbyage")) { list=SinhVienDAO.findByAge(Integer.parseInt(token.nextToken()));

} else if (action.equalsIgnoreCase("findbyscore")) { list=SinhVienDAO.findByScore(Double.parseDouble(token.nextToken()));

Page 17: Ltm

} else if(action.equalsIgnoreCase("exit"))break; pw.println(list.size()); for (SinhVien sinhVien : list) { pw.println(sinhVien.toString()); } } } public static void main(String[] args) throws Exception { new Server2(); }

}

e) SinhVienDAOpublic class SinhVienDAO { static ArrayList<SinhVien> list= new ArrayList<>(); static{ list.add(new SinhVien("aaa",1234,20,10)); list.add(new SinhVien("bbb",1235,21,9)); list.add(new SinhVien("ccc",1236,22,9)); list.add(new SinhVien("ddd",1237,20,5)); list.add(new SinhVien("aaa",1238,19,10)); list.add(new SinhVien("ddd",1239,21,9)); list.add(new SinhVien("eee",1230,21,9)); } public static ArrayList<SinhVien> findByName(String name) { ArrayList<SinhVien> re= new ArrayList<>(); for (int i = 0; i < list.size(); i++) { if(list.get(i).getName().equalsIgnoreCase(name))re.add(list.get(i)); } return re; } public static ArrayList<SinhVien> findByAge(int old) { ArrayList<SinhVien> re= new ArrayList<>(); for (int i = 0; i < list.size(); i++) { if(list.get(i).getOld()==old)re.add(list.get(i)); } return re; } public static ArrayList<SinhVien> findByScore(double score) { System.out.println(score); ArrayList<SinhVien> re= new ArrayList<>(); for (int i = 0; i < list.size(); i++) { if(Math.abs(list.get(i).getScore()-score)<0.1)re.add(list.get(i)); } return re; }}

f) UserDAOpublic class UserDAO { static ArrayList<User> list= new ArrayList<>();

Page 18: Ltm

static { list.add(new User("abc", "123")); list.add(new User("teo", "123")); list.add(new User("ti", "123")); list.add(new User("suu", "123")); list.add(new User("dan", "123")); } public static boolean check(String user) { for (User u : list) { if(u.getName().equals(user))return true; } return false; } public static boolean check(String user,String pass) { for (User u : list) { if(u.getName().equals(user)&&u.getPass().equals(pass))return true; } return false; }

}

8) B a cu iữ ố

a) RMIClient

Clientpublic class Client { public static void main(String[] args) throws RemoteException, NotBoundException { Registry r= LocateRegistry.getRegistry("127.0.0.1", 12345); Echo e= (Echo)r.lookup("echo"); System.out.println(e.echo("LTM")); }}

Sinh vien

public class Client { public Client() throws RemoteException, NotBoundException { Registry rs = LocateRegistry.getRegistry(12345); ISinhVien sv = (ISinhVien) rs.lookup("sv"); System.out.println("ban hay nhap lenh"); Scanner sc = new Scanner(System.in); List<Sinhvien> list;

while (true) { String command = sc.nextLine();

Page 19: Ltm

StringTokenizer token = new StringTokenizer(command, "[\t ]"); String request = token.nextToken(); switch (request) { case "findByName":

list = sv.findByName(token.nextToken()); print(list);

break; case "findByAge": list = sv.findByAge(Integer.parseInt(token.nextToken())); print(list); break; case "findByScore": list = sv.findMoreThanScore(Double.parseDouble(token.nextToken())); print(list); break; default: System.out.println("Nhap lenh sai vui long nhap lai"); break; } } } private void print(List<Sinhvien> list) { for (Sinhvien sv1 : list) { System.out.println((Sinhvien)sv1); } }

public static void main(String[] args) throws RemoteException, NotBoundException { new Client(); }}

b) RMIServer

Echopublic interface Echo extends Remote{ public String echo(String s) throws RemoteException ;

}

EchoImppublic class EchoImp extends UnicastRemoteObject implements Echo{

protected EchoImp() throws RemoteException { super(); }

Page 20: Ltm

/** * */ private static final long serialVersionUID = 1L;

@Override public String echo(String s) throws RemoteException { return "Xin Chào: "+s; }

}

Severpublic class Server { public static void main(String[] args) throws RemoteException { Registry r= LocateRegistry.createRegistry(12345); Echo e= new EchoImp(); r.rebind("echo", e); System.out.println("Server Äang chạy");� }}

ISinhVienpublic interface ISinhVien extends Remote{ public ArrayList<Sinhvien> findByName(String name) throws RemoteException; public ArrayList<Sinhvien> findByAge(int age)throws RemoteException; public ArrayList<Sinhvien> findMoreThanScore(double score) throws RemoteException;}

Serverpublic class Server { public Server() { Scanner sc = new Scanner(System.in); List<Sinhvien> list; SinhvienDAO dao = new SinhvienDAO(); while(true){ String command = sc.nextLine(); StringTokenizer token = new StringTokenizer(command, "\t"); String request = token.nextToken(); switch(request){ case "findByName": list= dao.findByName(token.nextToken()); for(Sinhvien sv : list){ System.out.println(sv); } break; case "findByAge" : list = dao.findByAge(Integer.parseInt(token.nextToken()));

Page 21: Ltm

for(Sinhvien sv : list){ System.out.println(sv); } break; case "findByScore": list = dao.findMoreThanScore(Double.parseDouble(token.nextToken())); for(Sinhvien sv : list){ System.out.println(sv); } break; default : System.out.println("Nhap lenh sai vui long nhap lai"); break; } } } public static void main(String[] args) {// Server server = new Server(); Random r= new Random(); System.out.println(r.nextInt(24)); }}

Server 1public class Sever1 {public Sever1() throws RemoteException { Registry regis = LocateRegistry.createRegistry(12345); ISinhVien sv = new SinhvienDAO(); regis.rebind("sv", sv); System.out.println("Sever dang chay"); }public static void main(String[] args) throws RemoteException { new Sever1();}}