我正在使用NIO非阻塞技术在java中编写ftp服务器。 我想阻止用户连接到我的服务器,然后什么都不做。 这是我的代码片段:
ServerSocketChannel serverChannel = (ServerSocketChannel) key.channel();
SocketChannel socketChannel = serverChannel.accept();
socketChannel.socket().setSoTimeout(3000);
socketChannel.configureBlocking(false);
....................
它不起作用。嗯...当用户什么都不做时(比如15分钟)可以抛出异常吗?
非常感谢
答案 0 :(得分:0)
socketChannel.socket().setSoTimeout(3000);
你已经完成了。但是,您还将通道置于非阻塞模式,这可以防止您获得超时异常。如果您使用非阻止模式,因此也可能select()
,则必须自行管理超时。