如何中断ServerSocket accept()方法?

在我的主线程中,我有一个while(listening)调用accept()我的ServerSocket对象的循环,然后启动一个新的客户端线程,并在接受新客户端时将其添加到Collection。


我还有一个Admin线程,我想用它来发出命令,比如'exit',这将导致所有客户端线程被关闭,自行关闭,并通过转向监听来关闭主线程。


但是,accept()在while(listening)循环块中调用,并且似乎没有任何方法可以中断它,因此无法再次检查while条件并且程序无法退出!


有一个更好的方法吗?或者某种方式来中断阻塞方法?


繁华开满天机
浏览 997回答 3
3回答

幕布斯6054654

你可以close()从另一个线程调用,然后accept()调用将抛出一个SocketException。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java