標籤:trace .net close add nbsp main row import end
伺服器端:
1 import java.net.*; 2 import java.io.*; 3 public class SocketServer extends Thread { 4 private ServerSocket serverSocket; 5 public SocketServer(int port) throws IOException 6 { 7 serverSocket=new ServerSocket(port); 8 //等待客戶串連的時間不超過6秒 9 serverSocket.setSoTimeout(100000);10 }11 public void run()12 {13 while(true)14 {15 try16 {17 System.out.println("等待遠端連線,連接埠號碼為:"+serverSocket.getLocalPort());18 Socket server =serverSocket.accept();19 System.out.println("遠程主機地址"+server.getRemoteSocketAddress());20 //從用戶端讀資料21 DataInputStream in=new DataInputStream(server.getInputStream());22 System.out.println(in.readUTF());23 //往用戶端發送資料24 DataOutputStream out=new DataOutputStream(server.getOutputStream());25 out.writeUTF("謝謝串連我:"+server.getLocalSocketAddress()+"\nGoodbye!");26 server.close();27 }28 catch(SocketException s)29 {30 System.out.println("Socket timed out");31 break;32 }33 catch(IOException e)34 {35 e.printStackTrace();36 break;37 }38 }39 }40 public static void main(String[] args)41 {42 int port=6066;43 try44 {45 Thread t=new SocketServer(port);46 t.run();47 }48 catch(IOException e)49 {50 e.printStackTrace();51 }52 }53 }
用戶端:
1 import java.net.*; 2 import java.io.*; 3 public class SocketClient { 4 public static void main(String[] args) 5 { 6 //伺服器位址 7 String serverName="localhost"; 8 //伺服器連接埠號碼 9 int port=6066;10 try11 {12 System.out.println("串連到主機:"+serverName+",連接埠號碼:"+port);13 Socket client=new Socket(serverName,port);14 System.out.println("遠程主機地址:"+client.getRemoteSocketAddress());15 //向伺服器傳送訊息16 OutputStream outToServer=client.getOutputStream();17 DataOutputStream out=new DataOutputStream(outToServer);18 out.writeUTF("Hello from"+client.getLocalSocketAddress());19 20 //擷取伺服器返回的資訊21 InputStream inFromServer=client.getInputStream(); 22 DataInputStream in=new DataInputStream(inFromServer);23 System.out.println("伺服器響應:"+in.readUTF());24 client.close();25 }26 catch(IOException e)27 {28 e.printStackTrace();29 }30 }31 32 }
Java Socket網路編程