Linux(Ubuntu 12.04)とWindows 7の両方でこのコードを呼び出すと、非常に異なる結果が得られます。
DatagramSocket socket = new DatagramSocket(4445);
socket.setReceiveBufferSize(Integer.MAX_VALUE);
System.out.println("SO_RX_BUFFER SET TO:"+socket.getReceiveBufferSize());
Linuxを入手:SO_RX_BUFFER SET TO:131071
Windowsでは次のようになります:SO_RX_BUFFER SET TO:2147483647
なぜオペレーティングシステム間で大幅に異なるのですか?なぜLinuxにとってこんなに小さな価値があるのでしょうか?Linuxのバッファサイズを大きくする方法はありますか?