java非阻塞网络编程超时问题

时间:2014-10-27 15:35:57

标签: java network-programming nio nonblocking

我正在使用NIO非阻塞技术在java中编写ftp服务器。 我想阻止用户连接到我的服务器,然后什么都不做。 这是我的代码片段:

ServerSocketChannel serverChannel = (ServerSocketChannel) key.channel();
SocketChannel socketChannel = serverChannel.accept();
socketChannel.socket().setSoTimeout(3000);
socketChannel.configureBlocking(false);
....................

它不起作用。嗯...当用户什么都不做时(比如15分钟)可以抛出异常吗?

非常感谢

1 个答案:

答案 0 :(得分:0)

socketChannel.socket().setSoTimeout(3000);

你已经完成了。但是,您还将通道置于非阻塞模式,这可以防止您获得超时异常。如果您使用非阻止模式,因此也可能select(),则必须自行管理超时。