0
晚上好!Java线程意外停止
我想用java和套接字编码服务器/客户端。
发送消息的过程工作正常,但我不知道为什么,当我启动第二个客户端并发送第一个消息后,第一个客户端被阻塞并且不再发送消息。
它必须是一个服务器端问题,因为我已经调试了整个代码,发现问题在这个时候,一旦它离开它似乎ID不会再次回来。 我的理论是它以某种方式停止或者迭代器可能停止运行。
你能检查一下并给我一些指导吗?已经花了4h就已经这样。
非常感谢!
编辑:所以正如我一直问我已经减少了代码,我认为是问题的核心。正如我通过调试检查一样,退出时,线程自行停止。
服务器:
new Thread() {
public void run() {
String inputLine;
// Input Thread
while ((inputLine = clientSocket.read_str()) != null) {
// L'iterator ha de començar des del principi cada cop que que es comença el while
Iterator<MySocket> keyIterator = connections.keySet().iterator();
while (keyIterator.hasNext()) {
MySocket sock = keyIterator.next();
sock.write_str(inputLine);
}
}
clientSocket.close();
removeUser(clientSocket);
}
}.start();
我们不能只是开始阅读你的代码块。请尽量减少所需的代码来重现您的问题,即[MVCE](http://stackoverflow.com/help/mcve)。 – Mordechai
已编辑!为了麻烦Sry。 –
@Arnau EC它仍然没有清除哪一行是第53行 – Acewin