我编写了一个简单的设置:客户端连接到服务器,服务器开始发送字节,客户端读取它们,但延迟时间为1秒。我有两个实现:使用Java IO和Java NIO。通过打印服务器发送的字节数和客户端接收的字节数,我尝试测量系统中客户端缓冲区的大小。当然,我通过socket.getReceiveBufferSize()方法仔细检查它。
这没有一些实际意义,只是在研究Java IO时的练习。
当我运行IO代码时,ok:socket.getReceiveBufferSize()返回大约8000个字节,发送和接收字节之间的差异始终保持在这个数字左右。即我在两个控制台中看到以下日志:“同时发送33000字节”和“收到25000字节”。
当我运行NIO代码时,情况就不同了。 delta总是大约27000字节,尽管channel.socket()。getReceiveBufferSize()像往常一样返回8000。
Windows,Java 6,客户端和服务器位于同一台计算机上。
答案 0 :(得分:0)