-3

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

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

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

所有数据都已发送。

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

谢谢迪帕克

4

1 回答 1

1
write()

Returns:
The number of bytes written, possibly zero 

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

您可能还应该搜索一个好的 java.nio 教程...如果您需要更简单的 api,请改用 java.io 中的阻塞 io...

于 2009-05-18T08:11:27.290 回答