繁体   English   中英

Java NIO套接字应用程序:重用SocketChannel还是丢失连接?

[英]Java NIO socket application: reuse SocketChannel or throw away on lost connection?

我正在开发一个中间件应用程序,它创建并维护与多个服务器的TCP / IP连接。 如果应用程序检测到连接已丢失,它将尝试重新连接计时器,直到重新建立连接。

应用程序在非阻塞模式下使用java.nio.SocketChannel对象,使用Selector / SelectionKey来处理套接字事件。

一旦连接丢失,最好丢弃当前的SocketChannel对象,并创建一个新的重新连接(也获得一个新的SelectionKey),或重用相同的SocketChannel和SelectionKey(我认为在连接建立之前无效)再次)?

你必须扔掉它。 当连接丢失时,您必须关闭终端上的SocketChannel以正确清理连接。 如果你想尝试重新连接,那么就完全按照你第一次做的那样做(createSocket,make non blocking,init connection等)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM