use*_*171 15 java socketchannel
我想使用a SocketChannel和它的读/写方法超时.我试图设置一个拥有我SocketChannel喜欢的Socket的超时:
channel.socket().setSoTimeout(TIMEOUT);
Run Code Online (Sandbox Code Playgroud)
但这不起作用.还有其他解决方案吗?
luk*_*uke 14
根据这篇文章,SocketChannel不会因读取操作而超时,但您可以通过另一种方式从通道读取来获得此效果.
SocketChannel socketChannel;
socketChannel.socket().setSocketTimeout(500);
InputStream inStream = socketChannel.socket().getInputStream();
ReadableByteChannel wrappedChannel = Channels.newChannel(inStream);
Run Code Online (Sandbox Code Playgroud)
从wrappedChannel读取将根据您设置的socketTimeOut超时.
| 归档时间: |
|
| 查看次数: |
13523 次 |
| 最近记录: |