加班到十点,没有时间,弄个输出套接字接收和返回的Buffer大小的程序

本文介绍了一个简单的程序,用于测试Socket默认的接收和发送缓冲区大小。在Ubuntu8.04环境下,测试结果显示接收缓冲区大小为87380字节,发送缓冲区大小为16384字节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

加班到十点,没有时间,弄个输出套接字接收和返回的Buffer大小的程序

write by 九天雁翎(JTianLing) -- blog.youkuaiyun.com/vagrxie

讨论新闻组及文件

Ubuntu8.04桌面版下,测试的结果为

Socket default Receive Buffer is 87380

Socket default Send Buffer is 16384

与作者在freebsd4.8中的稍有不同,接收缓冲区略大,发送缓冲区略小。

作者得出的结果分别是57344,32768

在我的系统中,接收的缓存实在是够大

源代码:

1 #include"unp.h"
2
3 intmain(intargc, char**argv)
4 {
5 intsockfd, n;
6 /* struct sockaddr_inservaddr; */
7 intliRcvSize = 0;
8 socklen_t liRcvLen = sizeof(liRcvSize);
9 intliSndSize = 0;
10 socklen_t liSndLen = sizeof(liSndSize);
11
12 if((sockfd = Socket(AF_INET, SOCK_STREAM, 0)) < 0)
13 {
14 err_sys("Socket Create failed/n");
15 }
16
17 if( ( n = getsockopt(sockfd, SOL_SOCKET, SO_RCVBUF, &liRcvSize, &liRcvLen) ) < 0)
18 {
19 err_sys("getsocketopt recv buffer run failed/n");
20 }
21
22 if( ( n = getsockopt(sockfd, SOL_SOCKET, SO_SNDBUF, &liSndSize, &liSndLen) ) < 0)
23 {
24 err_sys("getsocketopt send buffer run failed/n");
25 }
26
27 close(sockfd);
28
29 printf("Socket default Receive Buffer is %d/n", liRcvSize);
30 printf("Socket default Send Buffer is %d/n", liSndSize);
31
32
33 exit(0);
34 }

Thread model: posix

gcc version 4.2.4 (Ubuntu 4.2.4-1ubuntu4)

ANSI C程序

write by 九天雁翎(JTianLing) -- blog.youkuaiyun.com/vagrxie

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值