我在服务器端使用Spring Integration
来提供套接字。套接字定义为 soTimeout
,因此超过该超时将关闭当前打开的与客户端的套接字连接。
TcpConnectionFactoryFactoryBean fact = new TcpConnectionFactoryFactoryBean();
fact.setSoTimeout(timeout);
但是服务器端的线程将继续。如何强制取消/终止服务器套接字(也许有一个额外的线程超时,以便没有线程可以因任何问题而卡在后台)?
最佳答案
我认为您的意思是当客户端连接之一超时时您希望停止监听新连接。
为TcpConnectionExceptionEvent
实现ApplicationListener
并检查异常;如果是 SocketTimeoutException
,则在工厂 bean 创建的服务器工厂上调用 close()
。
关于java - 如何在超时时终止服务器套接字线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23994234/