java - 如何在超时时终止服务器套接字线程?

标签 java spring sockets spring-integration

我在服务器端使用Spring Integration来提供套接字。套接字定义为 soTimeout,因此超过该超时将关闭当前打开的与客户端的套接字连接。

TcpConnectionFactoryFactoryBean fact = new TcpConnectionFactoryFactoryBean();
fact.setSoTimeout(timeout);

但是服务器端的线程将继续。如何强制取消/终止服务器套接字(也许有一个额外的线程超时,以便没有线程可以因任何问题而卡在后台)?

最佳答案

我认为您的意思是当客户端连接之一超时时您希望停止监听新连接。

TcpConnectionExceptionEvent实现ApplicationListener并检查异常;如果是 SocketTimeoutException,则在工厂 bean 创建的服务器工厂上调用 close()

关于java - 如何在超时时终止服务器套接字线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23994234/

相关文章:

java - 我如何修改我的代码才能避免死锁?

使用objectinputstream和objectoutputstream的java网络

设置 Xms Xmx 时,Java Heap Space 不会增加,

java - 找不到 spring 4 maven Artifact

c - 当 tcp 服务器等待数据时,如何让程序每 10 毫秒读取一次传感器

python - 确定套接字是否可以读取或使用

Java 并发 - 应该阻塞还是让步?

Spring Boot 与 spring-cloud : gradle build fails

Spring Boot 隐藏或加密密码的最佳实践

java - BufferedReader 在与 TCP 套接字一起使用时在字符串中提供更多空字符