package Client;

import javax.swing.; import java.io.; import java.net.ServerSocket; import java.net.Socket; import java.util.ArrayList;

// 服务器类,用于处理最初的PortWaiter的创建任务以及向客户端发送消息。 class Client extends Thread{ Socket server; // 与服务器端的连接套接字 JTextArea messageArea; // 用于显示消息的文本区域 BufferedReader br; // 用于从服务器端接收消息的缓冲读取器 BufferedWriter bw; // 用于向服务器端发送消息的缓冲写入器 InputStream is; // 服务器端的输入流 OutputStream os; // 服务器端的输出流 int port; // 服务器端监听的端口号 String address; // 服务器端的IP地址

// 构造函数,初始化端口号、消息区域和服务器地址,并启动线程
Client(int port, JTextArea msgArea, String address) {
    this.port = port;
    this.messageArea = msgArea;
    this.address = address;
    this.start();
}

// 线程运行的方法
@Override
public void run() {
    super.run();

    try {
        server = new Socket(address, port); // 连接到服务器
        messageArea.append("- 已连接到主机 " + server.getInetAddress().getLocalHost() + "\n"); // 显示连接成功的消息
        is = server.getInputStream(); // 获取服务器端的输入流
        os = server.getOutputStream(); // 获取服务器端的输出流
        br = new BufferedReader(new InputStreamReader(is)); // 初始化缓冲读取器
        bw = new BufferedWriter(new OutputStreamWriter(os)); // 初始化缓冲写入器

        while(true) {
            String newMsg = br.readLine(); // 从服务器端读取新消息
            if (newMsg != null) {
                messageArea.append(">> " + newMsg + "\n"); // 显示新消息
            }
        }
    } catch (IOException e) {
        e.printStackTrace();

        if(e instanceof java.net.ConnectException)
            messageArea.append("- 无法连接到主机,请重试或检查地址和端口。" + "\n"); // 显示连接失败的消息
        else
            messageArea.append("- 与远程主机的连接已断开。\n"); // 显示连接断开的消息
    }
}

// 向服务器端发送消息的方法
public void sendMsg(String msg) {
    System.out.println("sendMsg");
    try {
        bw.write(msg + "\n"); // 发送消息
        bw.flush();
        messageArea.append("<< " + msg + "\n"); // 显示发送的消息
    } catch (IOException e) {
        e.printStackTrace();
    }
}

}

// 添加注释完成

package Client;import javaxswing;import javaio;import javanetServerSocket;import javanetSocket;import javautilArrayList;服务器类用于处理最初的PortWaiter的创建任务以及向客户端发送消息。class Client extends Thread Socket serve

原文地址: https://www.cveoy.top/t/topic/hBxI 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录