实现了基于TCP的Java Socket编程实例代码


以下是一个简单的基于TCP的Java Socket编程实例代码。这个示例包括服务器端和客户端两部分。服务器端将监听一个端口,等待客户端的连接,并接收客户端发送的消息。客户端将连接到服务器,并发送一条消息给服务器。

### 服务器端代码 (Server.java)


import java.io.*;
import java.net.*;

public class Server {
    public static void main(String[] args) {
        int port = 12345; // 服务器端口号
        try (ServerSocket serverSocket = new ServerSocket(port)) {
            System.out.println("服务器启动,监听端口 " + port);
            Socket socket = serverSocket.accept(); // 等待客户端连接
            System.out.println("客户端已连接");

            BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            String inputLine;
            while ((inputLine = in.readLine()) != null) {
                System.out.println("服务器接收到: " + inputLine);
                // 处理接收到的数据,此处仅为打印
            }
            socket.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

### 客户端代码 (Client.java)


import java.io.*;
import java.net.*;

public class Client {
    public static void main(String[] args) {
        String hostname = "localhost"; // 服务器地址
        int port = 12345; // 服务器端口号

        try (Socket socket = new Socket(hostname, port)) {
            PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
            out.println("Hello from Client!"); // 向服务器发送消息

            socket.close();
        } catch (UnknownHostException e) {
            System.err.println("无法找到主机: " + hostname);
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

**注意**:

- 服务器端在接收到客户端连接后,会不断读取来自客户端的输入,直到输入流结束(即客户端关闭连接)。

- 客户端连接到服务器后,发送一条消息,然后关闭连接。

- 在实际部署时,需要处理更多的异常情况和边缘情况,例如网络断开、数据格式问题等。

- 这个示例仅用于演示基本的TCP Socket通信流程。