linux内核中socket读取和接收的缓冲区大小

您所在的位置:网站首页 socket接收缓冲区最大值 linux内核中socket读取和接收的缓冲区大小

linux内核中socket读取和接收的缓冲区大小

2024-07-15 08:14| 来源: 网络整理| 查看: 265

linux内核中socket读取和接收的缓冲区大小

1、socket内核缓冲区大小可用getsockopt获取 2、socket内核缓冲区大小可用setsockopt设置,缓冲区的大小为设置的值的2倍,具体设置代码入下 3、socket缓冲区设置最大为多大呢? 接收缓冲区最大为:/proc/sys/net/core/rmem_max 接收缓冲区大小默认为:/proc/sys/net/core/rmem_default

问题(望大神回答): 1、发送缓冲区大小最大值跟默认值是多少呢? 2、为什么新创建的socket的接收缓存区的大小,跟/proc/sys/net/core/rmem_default中设置的值不一样呢? 3、内核中的socket缓冲区的大小,对于应用层编程有什么影响呢? 4、接收跟发送的缓冲区的大小多少合适呢?

#include #include #include #include #include int main(void) { int socketFd; if ((socketFd = socket(PF_INET, SOCK_STREAM,0)) < 0) { /* 获取socket发送和接收缓冲区的大小 */ optlen = sizeof(snd_size); err = getsockopt(socketFd, SOL_SOCKET, SO_SNDBUF, &snd_size, &optlen); if (err < 0) { printf("get send buff failed!\n"); } optlen = sizeof(rcv_size); err = getsockopt(socketFd, SOL_SOCKET, SO_RCVBUF, &rcv_size, &optlen); if (err < 0) { printf("get rev buff failed!\n"); } printf("senBuffLen:%d\n", snd_size); printf("recBuffLen:%d\n", rcv_size); /* 设置socket发送和接收缓冲区大小都为8K */ snd_size = 8*1024; optlen = sizeof(rcv_size); err = setsockopt(socketFd, SOL_SOCKET, SO_SNDBUF, &snd_size, optlen); if(err


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3