要在Java中实现socket通信,可以使用Java Socket API。首先,你需要创建一个ServerSocket对象,在特定的端口上监听客户端连接。当有客户端连接时,就创建一个Socket对象以便于与客户端进行通信。可以通过Socket的InputStream和OutputStream对象进行数据的读取和写入。以下是一个简单的示例代码:
Server端:
try {
ServerSocket serverSocket = new ServerSocket(8888);
System.out.println("Server is listening on port 8888");
Socket socket = serverSocket.accept();
System.out.println("Client connected: " + socket.getInetAddress());
InputStream inputStream = socket.getInputStream();
OutputStream outputStream = socket.getOutputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
PrintWriter writer = new PrintWriter(outputStream, true);
String message = reader.readLine();
System.out.println("Received message from client: " + message);
writer.println("Server has received the message: " + message);
socket.close();
serverSocket.close();
} catch (IOException ex) {
ex.printStackTrace();
}
Client端:
try {
Socket socket = new Socket("localhost", 8888);
System.out.println("Connected to server: " + socket.getInetAddress());
InputStream inputStream = socket.getInputStream();
OutputStream outputStream = socket.getOutputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
PrintWriter writer = new PrintWriter(outputStream, true);
String message = "Hello, server!";
writer.println(message);
System.out.println("Sent message to server: " + message);
String response = reader.readLine();
System.out.println("Received response from server: " + response);
socket.close();
} catch (IOException ex) {
ex.printStackTrace();
}
以上代码仅为示例,实际应用中需要考虑异常处理、多线程等问题。