LINUX创建套接字的发送接收缓存的大小

xunis 2013-04-03 11:53:42

protected static final int m_iMaxSize = 20480;
protected static DatagramSocket m_socket;
protected static int m_timeout = 3000;
protected static int m_Port = 5555;
protected static String m_Ip ="192.168.30.5";
private static byte[] datarecv = new byte[m_iMaxSize + 120];
/**
* @param args
*/
public static void main(String[] args) {
try {
m_Ip = args[0];
send s = new send();
m_socket = new DatagramSocket(m_Port, InetAddress.getByName(m_Ip));
int b = m_socket.getSendBufferSize();
int rb = m_socket.getReceiveBufferSize();
System.out.println("default SendBufferSize=" + b);
System.out.println("default ReceiveBufferSize=" + rb);
m_socket.setSendBufferSize(m_iMaxSize*1000);
m_socket.setReceiveBufferSize(m_iMaxSize*1000);
System.out.println("set SendBufferSize="+m_socket.getSendBufferSize());
System.out.println("set ReceiveBufferSize="+m_socket.getReceiveBufferSize());

s.start();
} catch (Exception e) {
System.out.println(e.toString());
}

}

WINDOWS平台运行结果
default SendBufferSize=65536
default ReceiveBufferSize=65536
set SendBufferSize=20480000
set ReceiveBufferSize=20480000

LINUX平台运行结果
default SendBufferSize=64512
default ReceiveBufferSize=64512
set SendBufferSize=131071
set ReceiveBufferSize=131071


LINUX设置套接字缓存有上限?
...全文
194 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
xunis 2013-04-11
  • 打赏
  • 举报
回复
引用 1 楼 AFer198215 的回复:
lz 霸气。 UDP每个传送包上限跟系统有关,没有统一标准,各家只是约定了一个最小值。 由于UDP的不可靠,一般传包小于等于512字节。
哦 万分感谢你的回复 我会考虑使用UDP的风险 谢谢!
想喝咖啡的貓 2013-04-03
  • 打赏
  • 举报
回复
lz 霸气。 UDP每个传送包上限跟系统有关,没有统一标准,各家只是约定了一个最小值。 由于UDP的不可靠,一般传包小于等于512字节。

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧