论坛首页 入门技术论坛

如何关闭一个正在accept的ServerSocket?

浏览 5945 次
该帖已经被评为新手帖
作者 正文
   发表时间:2007-03-27  
加入一个ServerSocket正在另一个线程堵塞accept,那如何停止accept或者关闭Socket?
   发表时间:2007-04-25  
Server socket 设置下超时
setSoTimeout
然后在Listen线程中用interrupt
0 请登录后投票
   发表时间:2007-05-29  
        /**
* 停止监听
*/
public void halt() {
System.out.println("正在停止监听...");
try {
pleaseStop = true;
new Socket("127.0.0.1", port);
if (listenSocket != null) {
listenSocket.close();
}
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("监听已停止!");
}
0 请登录后投票
   发表时间:2007-05-29  
为什么有这句
new Socket("127.0.0.1", port);
???
0 请登录后投票
   发表时间:2007-05-29  
其实直接close socket也可以,不过会抛出异常,我的意思是有什么比较安全而又简单的办法?难道要加一个标志,然后要关闭的时候把标志设为stop,然后连接listernSocket?这样也未免太麻烦了
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics