【发布时间】:2012-10-19 23:40:33
【问题描述】:
在 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 设置为:131071
在 Windows 上你会得到: SO_RX_BUFFER 设置为:2147483647
为什么操作系统之间存在巨大差异?为什么linux的价值这么小?有没有办法增加 linux 缓冲区的大小?
【问题讨论】:
标签: java network-programming operating-system udp