【发布时间】:2014-10-31 14:46:43
【问题描述】:
我正在使用 java 开发一个聊天应用程序。我想要实现的功能之一是除了客户端 1 与客户端 2 聊天(工作正常)之外,客户端 1 将向客户端 2 发送辅助信息(来自 Arduino 的数据)。我的想法是监听服务器上的两个端口,一个用于聊天,另一个用于辅助信息,我使用了两个 ServerSocket,当然还有两个 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 中遇到异常
谢谢。
【问题讨论】:
-
带有Selector 的解决方案可能是最好的。
标签: java sockets serversocket ports