AI编程java程序,用java编写,以tcp/ip通讯协议,服务端代码

AI编程java程序,用java编写,以tcp/ip通讯协议,服务端代码

监听指定端口(如8888),等待客户端连接,并在接收到连接后发送一条欢迎消息给客户端:

import java.io.*;
import java.net.*;
public class SimpleTcpServer {
    public static void main(String[] args) {
        try (ServerSocket serverSocket = new ServerSocket(8888)) {
            System.out.println("服务器已启动,正在监听端口: " + serverSocket.getLocalPort());
            // 等待客户端连接
            Socket clientSocket = serverSocket.accept();
            System.out.println("客户端已连接: " + clientSocket.getInetAddress().getHostAddress());
            // 获取输出流,向客户端发送消息
            OutputStream outputStreamToClient = clientSocket.getOutputStream();
            PrintWriter out = new PrintWriter(new OutputStreamWriter(outputStreamToClient, "UTF-8"), true);
            // 发送欢迎消息
            out.println("欢迎来到本服务器!您的IP地址是:" + clientSocket.getInetAddress().getHostAddress());
            // 为了演示,关闭输出流和套接字
            out.close();
            clientSocket.close();
            // 实际应用中,你可能需要一个循环来处理多个客户端连接,并且可能会读取客户端发来的数据
        } catch (IOException e) {
            System.err.println("服务器运行时发生错误: " + e.getMessage());
            e.printStackTrace();
        }
    }
}

这段代码创建了一个ServerSocket实例并绑定到本地主机的8888端口。当有客户端连接请求时,accept()方法会阻塞直到连接建立。连接建立后,通过获取的Socket对象的输出流向客户端发送消息。注意,在实际应用场景中,服务端通常会进入一个循环以处理来自多个客户端的连续连接请求,并且还会包含读取客户端发送过来的数据以及相应地回传信息的功能。上面的示例简化了这一过程,仅演示了如何接收单个连接并发送一次响应消息。

qrcode