我正在使用java开发聊天应用程序。我要实现的功能之一是,在client1与客户端2聊天(工作正常)之后,client1会将辅助信息(来自Arduino的数据)发送到client2。我的想法是在服务器上监听两个端口,一个用于聊天,另一个用于辅助信息,我使用两个ServerSockets,当然还有两个accept()语句,它们一直在阻塞。我的问题是如何在java中同时打开两个端口? 我从这样的事情开始:
new Thread() {
public void run() {
while(true) {
try {
Socket client1 = server.accept();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//handle client1
}
}}.start();
new Thread() {
public void run() {
while(true) {
try {
Socket client2 =arduinoServer.accept();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//handle client1
}
}}.start();
但我在线程" pool-1-thread-1"中得到了Exception。显示java.lang.NullPointerException
感谢。
答案 0 :(得分:0)
当然他们会阻止。 accept()是一种阻塞方法。
你需要两个线程中的两个accept()循环。