从SocketChannel读取的首选方法是什么?

时间:2016-11-21 20:02:09

标签: java sockets nio

我正在尝试编写一个非阻塞客户端/服务器,我已经注意到Socket提供了getInputStream()getOutputStream(),但SocketChannel提供了read()和{ {1}}。

我想访问write()的数据包,我可以在阻止模式下使用以下内容:

ByteArrayDataInput

但如果我尝试在非阻塞模式下这样做,我会收到以下错误:

ByteStreams.newDataInput(socket.getInputStream().read());

根据我的理解,我必须通过仅提供java.nio.channels.IllegalBlockingModeExceptionread()的频道来阅读数据包。

以与write()类似的方式获取此数据的首选方法是什么?我可以读取原始类型或UTF8字符串?

我的NIO线程如下:

ByteArrayDataInput

0 个答案:

没有答案