我在服务器端使用Spring Integration
来提供套接字。套接字为已定义的soTimeout
,因此超过该超时将关闭当前打开的套接字连接到客户端。
TcpConnectionFactoryFactoryBean fact = new TcpConnectionFactoryFactoryBean();
fact.setSoTimeout(timeout);
但是服务器端的线程将继续。如何强制取消/终止服务器套接字(可能还有一个额外的线程超时,这样任何问题都不会在后台挂起任何线程)?
答案 0 :(得分:1)
我认为你的意思是你想在其中一个客户端连接超时时停止侦听新连接。
为ApplicationListener
实施TcpConnectionExceptionEvent
并检查异常;如果它是SocketTimeoutException
,请在工厂bean创建的服务器工厂上调用close()
。