简单Socket示例
服务端:
package study.socket; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; public class SocketServer { public static void main(String[] args) { final int port = 8888; try { ServerSocket server = new ServerSocket(port); Socket socket = null; while (true) { socket = server.accept(); DataInputStream input = new DataInputStream(socket.getInputStream()); String msg = input.readUTF(); System.out.println("服务器接收到客户端信息:" + msg); // 向客户端回复信息 DataOutputStream out = new DataOutputStream(socket.getOutputStream()); if (msg.equals("bye")) { out.writeUTF("感谢您的使用,再见!"); } else { out.writeUTF("感谢连接,您已经成功连接到服务器了"); } out.close();
socket.close(); } } catch (IOException e) { e.printStackTrace(); } } }
客户端:
package study.socket; import java.io.BufferedReader; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.net.Socket; import java.net.UnknownHostException; public class SocketClient { public static void main(String[] args) { final String host = "127.0.0.1"; final int port = 8888; try { Socket socket = new Socket(host, port); System.out.println("连接服务器成功..."); // 读取服务器端数据 DataInputStream input = new DataInputStream(socket.getInputStream()); // 向服务器端发送数据 DataOutputStream out = new DataOutputStream(socket.getOutputStream()); System.out.print("请输入: \t"); String str = new BufferedReader(new InputStreamReader(System.in)).readLine(); out.writeUTF(str); String result = input.readUTF(); System.out.println("服务器端返回的消息: " + result); out.close(); input.close(); socket.close(); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
浙公网安备 33010602011771号