我可以使用java nio发送小数据。
但是如果我想发送一个非常大的数据,那么我的套接字通道就不能正常工作。
message = "very large data"+"\n";
ByteBuffer buf = ByteBuffer.wrap(message.getBytes());
int nbytes = channel.write(buf);
发送所有数据。
我想从服务器读取数据,所以我使用的是BufferedInputStreaReader.readLine(); 在这种情况下,我没有收到任何错误,我也无法检索我发送的任何数据
由于 迪帕克
答案 0 :(得分:1)
write()
Returns:
The number of bytes written, possibly zero
无法保证写入您的整个buf。 你需要检查写了多少,然后再做一次写。 (也可能等待(选择),直到你再写一次。)
你应该也可以搜索一个好的java.nio教程...... 如果你需要一个更简单的api,请在java.io中使用阻塞io而不是......