在 Java 中,使用 Socket 编程实现 TCP 连接是一种常见的场景。我将为你提供一个简单的示例,展示如何创建一个基本的 TCP 服务器和客户端。
首先,让我们看一下如何实现一个简单的 TCP 服务器:
Java
import java.io.*; import java.net.*; public class SocketServerExample { public static void main(String[] args) throws IOException, ClassNotFoundException { int port = 9876; // 服务器监听的端口号 try (ServerSocket serverSocket = new ServerSocket(port)) { System.out.println("服务器正在监听端口 " + port); while (true) { Socket socket = serverSocket.accept(); // 等待客户端连接 System.out.println("新客户端已连接"); // 从 socket 获取输入流 ObjectInputStream ois = new ObjectInputStream(socket.getInputStream()); String message = (String) ois.readObject(); System.out.println("收到客户端消息: " + message); // 创建输出流并发送响应消息 ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream()); oos.writeObject("Hi Client " + message); // 关闭资源 ois.close(); oos.close(); socket.close(); // 如果客户端发送了 "exit" 请求,终止服务器 if (message.equalsIgnoreCase("exit")) { break; } } } catch (IOException e) { e.printStackTrace(); } } }
接下来,我们看一下如何实现一个简单的 TCP 客户端:
Java
import java.io.*; import java.net.*; public class SocketClientExample { public static void main(String[] args) throws UnknownHostException, IOException, ClassNotFoundException { String serverAddress = "localhost"; // 服务器地址 int serverPort = 9876; // 服务器端口号 Socket socket = new Socket(serverAddress, serverPort); System.out.println("已连接到服务器"); // 创建输入流和输出流 ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream()); oos.writeObject("Hello from client"); // 从服务器接收响应 ObjectInputStream ois = new ObjectInputStream(socket.getInputStream()); String response = (String) ois.readObject(); System.out.println("服务器响应: " + response); // 关闭资源 oos.close(); ois.close(); socket.close(); } }
这两个示例展示了一个简单的 TCP 服务器和客户端之间的通信。你可以根据自己的需求扩展这些代码,添加更复杂的业务逻辑。