本文展示基於 TCP 協議的 Java Socket 雙向通信最小化實現。服務端監聽 8888 端口,客戶端連接後發送 "Connect",服務端回應 "Hello!",雙方均在控制台輸出接收內容。
ServerSocket 綁定端口 8888accept() 阻塞等待客戶端連接DataInputStream 讀取 UTF 字符串DataOutputStream 寫入回應並 flush()ServerSocket serverSocket = new ServerSocket(8888);
Socket socket = serverSocket.accept();
DataInputStream dis = new DataInputStream(socket.getInputStream());
System.out.println(dis.readUTF()); // 輸出 "Connect"
DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
dos.writeUTF("Hello!");
dos.flush();
Socket 連接服務端 IP(示例為 192.168.1.123)與端口UnknownHostException 與 IOExceptionSocket socket = new Socket("192.168.1.123", 8888);
DataOutputStream bos = new DataOutputStream(socket.getOutputStream());
bos.writeUTF("Connect");
bos.flush();
DataInputStream dis = new DataInputStream(socket.getInputStream());
System.out.println(dis.readUTF()); // 輸出 "Hello!"
TCPServer 主方法,控制台顯示等待連接TCPClient,觀察雙向輸出accept() 僅支援單連接)DataInput/OutputStream