多线程中使用Socket Server的问题

写安卓遇到的问题,一个启动监听的按钮,一个关闭监听的按钮,在启动关闭之后再启动将出现问题端口被占用,所以是因为前一个已启动的监听线程并没有被正常关闭导致端口还在被占用。虽然使用了interrupt,但是前一个监听线程并没有出现阻塞的情况,而是处于类似死循环的状态,所以没有抛出异常而被处理。

Socket Server的accept方法和Socket的connect方法使用的都是类似于循环的方法,并不是阻塞的方法,所以在多线程使用interrupt方法去结束一个使用了这种类型的方法的子线程并不能抛出异常,然后结束。这两种方法可以通过设置超时时间,然后在超时时间结束之后调用sleep来使之阻塞,这样就可以在设置interrput之后抛出异常并中断方法。

其他类似的例子

http://blog.csdn.net/sapphiron/article/details/3018053

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012876995/article/details/49952381
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

多线程中使用Socket Server的问题

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭