ServerClient Connection 11 1 11 2 Server Socket

  • Slides: 21
Download presentation
第十一章 網路連接(Server/Client Connection) • • • 11 -1 簡介 11 -2 Server. Socket Class

第十一章 網路連接(Server/Client Connection) • • • 11 -1 簡介 11 -2 Server. Socket Class 11 -3 Inet. Address Class 11 -4 Socket Class 11 -5 指令參數與Server/Client連接 11 -6 多次Server/Client連接記錄 11 -7 習題(Exercises)

範例122:設有檔案Server 11_2. java,其功能為解釋如何建立 Server. Socket網路平台? • • • • • • 01 02 03

範例122:設有檔案Server 11_2. java,其功能為解釋如何建立 Server. Socket網路平台? • • • • • • 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 import java. net. *; import java. io. *; class Server 11_2 { public static void main(String args[]) { try { Server. Socket SS 1 = new Server. Socket(1234); System. out. println("Server. Socket SS 1 is created"); System. out. println("SS 1. get. Local. Port() = " + SS 1. get. Local. Port()); SS 1. close(); System. out. println(“SS 1 is closed”); Server. Socket SS 2 = new Server. Socket(0, 2); System. out. println("Server. Socket SS 2 is created"); System. out. println("SS 2. get. Local. Port() = " + SS 2. get. Local. Port()); SS 2. close(); System. out. println("SS 1 is closed"); } catch(IOException e) { System. out. println(e. get. Message()); } } }

範例123:設有檔案Server 11_3. java,其功能為解釋類別 Inet. Address之應用。 • • • • • 01 import java. net.

範例123:設有檔案Server 11_3. java,其功能為解釋類別 Inet. Address之應用。 • • • • • 01 import java. net. *; 02 import java. io. *; 03 class Server 11_3 { 04 public static void main(String args[]) { 05 try { 06 Inet. Address iaddr = Inet. Address. get. By. Name("163. 15. 40. 242"); 07 System. out. println("iaddr. get. Host. Address() = " + iaddr. get. Host. Address()); 08 System. out. println("iaddr. get. Host. Name() = " + iaddr. get. Host. Name()); 09 } 10 catch(Unknown. Host. Exception e) { 11 System. out. println(e. get. Message()); 12 } 13 } 14 }

範例124:設有檔案Server 11_4_1. java、Client 11_4_1. java其功能為 解釋Server/Client如何執行網路連接? • • 檔案Server 11_4_1. java: 01 import java.

範例124:設有檔案Server 11_4_1. java、Client 11_4_1. java其功能為 解釋Server/Client如何執行網路連接? • • 檔案Server 11_4_1. java: 01 import java. net. *; 02 import java. io. *; 03 public class Server 11_4_1 { 04 public Server 11_4_1() { 05 try{ 06 Server. Socket SS = new Server. Socket(1234); 07 System. out. println(“Server is created and waiting Client to connect. . . ”); • • • 08 09 10 11 12 13 14 15 16 17 18 19 Socket socket = SS. accept(); System. out. println(“connected from Client ” + socket. get. Inet. Address()); socket. close(); } catch(IOException e){ System. out. println(e. get. Message()); } } public static void main(String args[]){ Server 11_4_1 Server. Start=new Server 11_4_1(); } }

檔案Client 11_4_1. java: • • • • • 20 import java. io. *; 21

檔案Client 11_4_1. java: • • • • • 20 import java. io. *; 21 import java. net. *; 22 public class Client 11_4_1 { 23 public Client 11_4_1() { 24 try{ 25 Socket socket = new Socket("163. 15. 40. 242", 1234); 26 socket. close(); 27 } 28 catch(IOException e){ 29 System. out. println(e. get. Message()); 30 } 31 } 32 public static void main(String args[]) { 33 Client 11_4_1 Client. Start=new Client 11_4_1(); 34 } 35 }

範例125:設有檔案Server 11_4_2. java、Client 11_4_2. java其功能為解釋Server/Client連接、 類別Inet. Address、方法程序get. Local. Port()、get. Port() 之應用。 • • •

範例125:設有檔案Server 11_4_2. java、Client 11_4_2. java其功能為解釋Server/Client連接、 類別Inet. Address、方法程序get. Local. Port()、get. Port() 之應用。 • • • • • • • 檔案Server 11_4_2. java: 01 import java. net. *; 02 import java. io. *; 03 public class Server 11_4_2 { 04 public Server 11_4_2() { 05 try{ 06 Server. Socket SS = new Server. Socket(1234); 07 System. out. println("Server is created and waiting Client to connect. . . "); 08 Socket socket = SS. accept(); 09 System. out. println("connected from Client " + socket. get. Inet. Address()); 10 System. out. println("Server Local Port = " + socket. get. Local. Port()); 11 System. out. println("Client Port = " + socket. get. Port()); 12 socket. close(); 13 } 14 catch(IOException e){ 15 System. out. println(e. get. Message()); 16 } 17 } 18 public static void main(String args[]){ 19 Server 11_4_2 Server. Start=new Server 11_4_2(); 20 } 21 }

檔案Client 11_4_2. java: • • • • 22 import java. io. *; 23 import

檔案Client 11_4_2. java: • • • • 22 import java. io. *; 23 import java. net. *; 24 public class Client 11_4_2 { 25 public Client 11_4_2() { 26 try{ 27 Inet. Address iaddr = Inet. Address. get. By. Name("163. 15. 40. 242"); 28 Socket socket = new Socket(iaddr, 1234); 29 System. out. println("Client Local Port = " + socket. get. Local. Port()); 30 System. out. println("Server Port = " + socket. get. Port()); 31 socket. close(); 32 } 33 catch(IOException e){ 34 System. out. println(e. get. Message()); 35 } 36 }

範例126:設有檔案Server 11_5. java、Client 11_5. java其功能為解釋 Server/Client連接、與指令參數之應用。 • • • • • 檔案Server 11_5. java:

範例126:設有檔案Server 11_5. java、Client 11_5. java其功能為解釋 Server/Client連接、與指令參數之應用。 • • • • • 檔案Server 11_5. java: 01 import java. net. *; 02 import java. io. *; 03 public class Server 11_5 { 04 static int port; 05 public Server 11_5() { 06 try{ 07 Server. Socket SS = new Server. Socket(port); 08 System. out. println("Server is created and waiting Client to connect. . . "); 09 10 11 12 } Socket socket = SS. accept(); System. out. println("connected from Client " + socket. get. Inet. Address(). get. Host. Address()); socket. close();

檔案Server 11_5. java:續 • • • • 13 catch(IOException e){ 14 System. out. println(e.

檔案Server 11_5. java:續 • • • • 13 catch(IOException e){ 14 System. out. println(e. get. Message()); 15 } 16 } 17 public static void main(String args[]){ 18 if(args. length < 1){ 19 System. out. println("Usage: java Server 11_5 [port]"); 20 System. exit(1); 21 } 22 port=Integer. parse. Int(args[0]); 23 Server 11_5 Server. Start=new Server 11_5(); 24 } 25 }

檔案Client 11_5. java: • • • 26 import java. io. *; 27 import java.

檔案Client 11_5. java: • • • 26 import java. io. *; 27 import java. net. *; 28 public class Client 11_5 { 29 static String iaddr; 30 static int port; 31 public Client 11_5() { 32 try{ 33 Socket socket=new Socket(Inet. Address. get. By. Name(iaddr), port); • 34 socket. close(); • 35 }

檔案Client 11_5. java:續 • • • • 36 catch(IOException e){ 37 System. out. println(e.

檔案Client 11_5. java:續 • • • • 36 catch(IOException e){ 37 System. out. println(e. get. Message()); 38 } 39 } 40 public static void main(String args[]) { 41 if (args. length < 2){ 42 System. out. println("USAGE: java Client 11_5 [iaddr] [port]"); 43 System. exit(1); 44 } 45 iaddr = args[0]; 46 port =Integer. parse. Int(args[1]); 47 Client 11_5 Client. Start=new Client 11_5(); 48 } 49 }

範例127:設有檔案Server 11_6. java、Client 11_6. java其功能為解釋如何執行Server網站被多 個Client端作多次連接,並記錄各Client端之IP、port、與時間。 • • • • • • 檔案Server 11_6.

範例127:設有檔案Server 11_6. java、Client 11_6. java其功能為解釋如何執行Server網站被多 個Client端作多次連接,並記錄各Client端之IP、port、與時間。 • • • • • • 檔案Server 11_6. java: 01 import java. net. *; 02 import java. io. *; 03 import java. util. *; 04 public class Server 11_6 { 05 static int port; 06 public Server 11_6() { 07 try{ 08 Server. Socket SS = new Server. Socket(port); 09 System. out. println("Server is created and waiting Client to connect. . . "); 10 11 12 13 14 15 16 17 18 } while(true){ Socket socket = SS. accept(); Date current. Date = new Date(); System. out. println("Client IP = " + socket. get. Inet. Address(). get. Host. Address()); System. out. println("Client port = " + socket. get. Port()); System. out. println("Connect date = " + current. Date); System. out. println("waiting. . . "); }

檔案Server 11_6. java:續 • • • • 19 catch(IOException e){ 20 System. out. println(e.

檔案Server 11_6. java:續 • • • • 19 catch(IOException e){ 20 System. out. println(e. get. Message()); 21 } 22 } 23 public static void main(String args[]){ 24 if(args. length < 1){ 25 System. out. println("Usage: java Server 11_6 [port]"); 26 System. exit(1); 27 } 28 port=Integer. parse. Int(args[0]); 29 Server 11_6 Server. Start=new Server 11_6(); 30 } 31 }

檔案Client 11_6. java: • • • • • 32 import java. io. *; 33

檔案Client 11_6. java: • • • • • 32 import java. io. *; 33 import java. net. *; 34 public class Client 11_6 { 35 static String iaddr; 36 static int port; 37 public Client 11_6() { 38 try{ 39 Socket socket=new Socket(Inet. Address. get. By. Name(iaddr), port); 40 System. out. println("To connect Server"); 41 socket. close(); 42 } 43 catch(IOException e){ 44 System. out. println(e. get. Message()); 45 } 46 }

檔案Client 11_6. java:續 • • • 47 public static void main(String args[]) { 48

檔案Client 11_6. java:續 • • • 47 public static void main(String args[]) { 48 if (args. length < 2){ 49 System. out. println("USAGE: java Client 11_6 [iaddr] [port]"); 50 System. exit(1); 51 } 52 iaddr = args[0]; 53 port = Integer. parse. Int(args[1]); 54 Client 11_6 Client. Start=new Client 11_6(); 55 } 56 }