Linux 下修改socket接收缓冲区
来源:互联网 发布:鲁滨逊漂流记java 编辑:程序博客网 时间:2024/05/16 15:28
在进行socket编程有时候可能需要修改下socket的接收缓冲区大小,这里可以使用 setsockopt 函数,但是如果需要修改的缓冲区很大(比如500MB),则还需要修改系统内核的TCP/IP参数,不然接收缓冲区大小会收到内核参数的限制,所以需要改两个地方。下面以把socket接收缓冲区修改为500MB说明一下要作的修改。
1、修改内核TCP/IP参数
在终端用sysctl命令修改socket最大缓冲区限制:
sudo sysctl -w net.core.rmem_max=524288000
2、在代码中用setsockopt函数修改SO_RCVBUF选项
int recvbuff = 500*1024*1024;if(setsockopt(sockfd, SOL_SOCKET, SO_RCVBUF, (const char*)&recvsize, sizeof(int)) == -1) printf("setsocket error\n");else printf("setsocket success\n");
以上两点,只改第1点,一个socket只会预留63个报文的接收缓冲;只改第2点,缓冲区大小会受到rmem_max的限制,如果需要的缓冲区很大的话,必须两点都改。
阅读全文
1 0
- Linux 下修改socket接收缓冲区
- linux下socket读写缓冲区
- Linux下如何清空socket的接收缓冲区的数据
- Socket接收字节缓冲区
- Socket接收字节缓冲区
- linux tcp socket的发送与接收缓冲区
- linux下查看系统socket读写缓冲区
- 透彻理解LINUX下TCP的发送缓冲区接收缓冲区与滑动窗口
- 设置SOCKET的发送与接收缓冲区
- socket的发送与接收缓冲区
- 设置SOCKET的发送与接收缓冲区
- 设置SOCKET的发送与接收缓冲区 .
- tcp socket的发送与接收缓冲区
- tcp socket的发送与接收缓冲区 .
- tcp socket的发送与接收缓冲区
- tcp socket的发送与接收缓冲区
- TCP socket的发送与接收缓冲区
- socket 的发送与接收缓冲区解析
- Android 如何创建socket服务器
- java.sql.SQLException: No suitable driver
- codevs 4650 破损的键盘(stl)
- Java并发编程实战(2)
- WebService安全认证
- Linux 下修改socket接收缓冲区
- 【暂未解决】video标签在移动端页面播放时默认全屏的问题
- 一张图看懂小米开源的分布式KV存储系统Pegasus
- CentOS 下配置网络yum源
- Mongo分库方案选型
- 面试问题(aop 反回结果的增强是哪个)
- 模仿记事本
- 一个简单的java缓存类
- 141. Linked List Cycle