2014-10-27 46 views
2

我正在使用NIO非阻塞技術在java中編寫ftp服務器。 我想阻止用戶連接到我的服務器,然後什麼都不做。 這裏是我的代碼片段:java非阻塞網絡編程超時問題

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

它不工作。嗯......當用戶什麼都不做時(例如說15分鐘),有可能拋出異常嗎?

非常感謝你

回答

0
socketChannel.socket().setSoTimeout(3000); 

你已經做到了。但是,你也可以將頻道設置爲非阻止模式,這可以防止你獲得超時異常。如果您使用的是非阻塞模式,因此也可能是select(),您必須自行管理超時。