ServerSocket端口在运行多个线程时将状态更改为FinWait2(java)
我在我们的一个客户的项目中遇到了意想不到的行为 我的程序正在处理来自多个时间终端的数据,并将数据发送到notes服务器。 程序为每个给定的IP地址启动一个NotesThread,该线程通过TCP处理notes服务器和时间终端数据之间的通信。为了退出应用程序,我实现了另一个线程,该线程正在侦听特定的唯一端口 由于未知原因,第一个ServerSocket在打开第二个TimeTerminal NotesThread时关闭 Powershell中终止侦听器端口的输出如下所示: 命令:ServerSocket端口在运行多个线程时将状态更改为FinWait2(java),java,lotus-notes,serversocket,jdk1.6,Java,Lotus Notes,Serversocket,Jdk1.6,我在我们的一个客户的项目中遇到了意想不到的行为 我的程序正在处理来自多个时间终端的数据,并将数据发送到notes服务器。 程序为每个给定的IP地址启动一个NotesThread,该线程通过TCP处理notes服务器和时间终端数据之间的通信。为了退出应用程序,我实现了另一个线程,该线程正在侦听特定的唯一端口 由于未知原因,第一个ServerSocket在打开第二个TimeTerminal NotesThread时关闭 Powershell中终止侦听器端口的输出如下所示: 命令:while($tru
while($true){Get nettcpcconnection-Localport 486784867948680-ErrorAction“SilentlyContinue”;sleep 1}
public void run() {
ServerSocket listenSocket = null;
Socket clientSocket = null;
try {
listenSocket = new ServerSocket(port);
clientSocket = listenSocket.accept();
} catch (IOException ioe) {
// log output
} finally {
try {
clientSocket.close();
listenSocket.close();
} catch (Exception ex) {
// log output
}
}
}
for (String IP: IPs) {
new TimeTerminalService(IP, port, AllowLog, terminatePort, LogPath).start();
if (serviceCounter < serviceCount) {
try {
Thread.sleep(5000);
serviceCounter++;
terminatePort++;
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}