【发布时间】:2011-08-03 08:44:55
【问题描述】:
这是 java 中的一个 messenger 项目的一部分。因为客户端使用直接连接进行聊天,所以我希望每个客户端都侦听某个端口,而其他客户端则为该地址创建一个套接字。但是当我在另一个线程中调用 ServerSocket.accept() 时,似乎所有线程都已暂停。这意味着执行该命令后什么都没有发生。这是创建新线程的代码。
java.awt.EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
while(true){
System.out.println("flag1");
Socket socket = listeningSocket.accept();
System.out.println("flag2");
new Chat(socket).setVisible(true);;
jTextArea1.append("successfully connected\n");
}
} catch (NullPointerException e) {
System.out.println("i know");
}
catch (IOException e) {
e.printStackTrace();
jTextArea1.append("error in recieving connection\n");
}
}
});
任何想法如何解决这个问题?
【问题讨论】:
-
大部分时间应该被阻塞,总线有时应该响应别人
-
@kvphxga,mre 指的是您在 Stack Overflow 上提出了 8 个问题,但只接受了其中一个问题的答案。这被认为是粗鲁的,除非你真的觉得没有人充分回答你的任何问题。
标签: java sockets network-programming