使用java nio socket通道编写大数据的问题

时间:2009-05-18 07:37:59

标签: java nio

我可以使用java nio发送小数据。

但是如果我想发送一个非常大的数据,那么我的套接字通道就不能正常工作。

message = "very large data"+"\n";
ByteBuffer buf = ByteBuffer.wrap(message.getBytes());
int nbytes = channel.write(buf);

发送所有数据。

我想从服务器读取数据,所以我使用的是BufferedInputStreaReader.readLine(); 在这种情况下,我没有收到任何错误,我也无法检索我发送的任何数据

由于 迪帕克

1 个答案:

答案 0 :(得分:1)

write()

Returns:
The number of bytes written, possibly zero 

无法保证写入您的整个buf。 你需要检查写了多少,然后再做一次写。 (也可能等待(选择),直到你再写​​一次。)

你应该也可以搜索一个好的java.nio教程...... 如果你需要一个更简单的api,请在java.io中使用阻塞io而不是......