我在Java套接字方面遇到了一些麻烦.我有一对应用程序在它们之间建立连接(一个打开a ServerSocket,调用accept()和等待,另一个通过Socket(InetAddress,int)构造函数连接.
建立套接字连接后,使用Thread它创建a Runnable.
public void run() {
System.out.print("Watching Socket for closing ");
while(running) {
if(socket.isClosed()) {
System.out.println("Socket has been closed");
break;
}
}
this.running = false;
//safely ends this application by closing i/o and exiting.
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,当其中一个应用程序意外关闭时(在我的情况下从Eclipse终止)调用Socket.isClosed()仍显示套接字已打开,因此循环保持运行,就好像Socket已打开一样.
当另一侧的Java应用程序被强制结束时,如何检测Socket何时关闭?
| 归档时间: |
|
| 查看次数: |
342 次 |
| 最近记录: |