我有一个程序,我使用socketchannel.socket()设置socket的buffersize.setBufferSize(100 * 1024 * 1024),OS是ubuntu。当我尝试使用getBufferSize()验证值时,我看到值“131071”。从几个帖子我知道setBufferSize()中设置的值只是该方法的建议而不是实际选择。我假设该值取自/ proc / sys / net / ipv4 / tcp_rmem。但在这里,我看到完全不同的价值。
我很困惑。 set方法中提到的值是“104857600”,但get方法给出“131071”。我在/ proc / sys / net / ipv4 / tcp_rmem中看到的值是“4096 87380 6291456”,其中6291456是最大值,这是无关紧要的。有人可以解释一下这个策略是如何运作的。