gpt4 book ai didi

java - 使用多线程java服务器获取客户端ID

转载 作者:太空宇宙 更新时间:2023-11-04 12:15:14 25 4
gpt4 key购买 nike

我目前正在尝试创建一个多线程 java 套接字服务器。我可以在我的客户端中使用“ID;MESSAGE;”发送“私有(private)”消息。

消息到达正确的客户端,但问题是服务器始终显示所有消息都来自同一客户端(客户端 ID 0),但事实并非如此。

这是我的服务器 http://pastebin.com/Dzh5Ynvj

服务器输出

21:02:55 [DSS-Server] [Client#0] connected.
21:02:58 [DSS-Server] [Client#1] connected.
21:13:11 [DSS-Server] [Client#0] > 0;This is send from client 0
21:13:18 [DSS-Server] [Client#0] > 1;This also
21:13:30 [DSS-Server] [Client#0] > 0;But this comes from client 1

最佳答案

在您的 ClientHandler 代码中,您尚未将 id 参数分配给类的 id 成员。

public ClientHandler(Socket client, int id) {
this.id = id; // ADD THIS LINE
try {

//Get BufferedReader from client
this.client = client;
reader = new BufferedReader(new InputStreamReader(client.getInputStream()));
} catch (IOException e) {
e.printStackTrace();
}
}

ClientHandler 构造函数中添加 this.id = id;。应该可以了。

关于java - 使用多线程java服务器获取客户端ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39482391/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com