在java中,socket同时监听两个端口
我正在使用java开发一个聊天应用程序。我想实现的功能之一是,除了client1与client2聊天(工作正常)之外,client1还将向client2发送辅助信息(来自Arduino的数据)。我的想法是监听服务器上的两个端口,一个用于聊天,另一个用于辅助信息,我使用了两个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”java中遇到了一个例外。lang.NullPointerException
谢谢
# 1 楼答案
当然,他们一直在阻挡。accept()是一种阻塞方法
需要两个线程中的两个accept()循环