SimpleTcpServer
package main;
import java.io.*;
import java.net.*;public class SimpleTcpServer {private static final int PORT = 8888;public static void main(String[] args) {ServerSocket serverSocket = null;try {serverSocket = new ServerSocket(PORT);System.out.println("TCP服务器已启动,正在监听端口: " + PORT);while (true) {Socket clientSocket = serverSocket.accept();System.out.println("新客户端连接: " +clientSocket.getInetAddress().getHostAddress() +":" + clientSocket.getPort());new Thread(() -> handleClient(clientSocket)).start();}} catch (IOException e) {System.err.println("服务器启动失败: " + e.getMessage());} finally {if (serverSocket != null) {try {serverSocket.close();System.out.println("服务器已关闭");} catch (IOException e) {System.err.println("关闭服务器时发生错误: " + e.getMessage());}}}}private static void handleClient(Socket clientSocket) {try (BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(clientSocket.getOutputStream())),true)) {String clientMessage;while ((clientMessage = in.readLine()) != null) {System.out.println("收到来自客户端的消息: " + clientMessage);String response = "服务器已收到: " + clientMessage;out.println(response);System.out.println("已向客户端发送响应: " + response);}System.out.println("客户端已断开连接");} catch (IOException e) {System.err.println("与客户端通信时发生错误: " + e.getMessage());} finally {try {clientSocket.close();} catch (IOException e) {System.err.println("关闭客户端连接时发生错误: " + e.getMessage());}}}
}
TcpClient
package main;import java.io.*;
import java.net.Socket;public class TcpClient {public static void main(String[] args) {String serverIp = "127.0.0.1";int serverPort = 8888;String serverMessage = null;try (Socket socket = new Socket(serverIp, serverPort);PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()))) {System.out.println("已成功连接到TCP服务器: " + serverIp + ":" + serverPort);String messageToSend = "Hello from TCP client!";out.println(messageToSend);System.out.println("已发送消息: " + messageToSend);serverMessage = in.readLine();if (serverMessage != null) {System.out.println("从服务器接收的消息: " + serverMessage);} else {System.out.println("未收到服务器的响应");}} catch (IOException e) {System.err.println("连接或通信过程中发生错误: " + e.getMessage());e.printStackTrace();}}
}