1、通过代码读取,这个比较准确
/* getsndrcv.c:
* getsockopt sample c code
* using getsockopt
* Get SO_SNDBUF & SO_RCVBUF Options:
*/
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <assert.h>
/*
* This function reports the error and
* exits back to the shell:
*/
static void
displayError(const char *on_what) {
if ( errno != 0 ) {
fputs(strerror(errno),stderr);
fputs(": ",stderr);
}
fputs(on_what,stderr);
fputc('\n',stderr);
exit(1);
}
int main(int argc,char **argv) {
int z;
int s = -1; /* Socket */
int sndbuf=0; /* Send buffer size */
int rcvbuf=0; /* Receive buffer size */
socklen_t optlen; /* Option length */
/*
* Create a TDP/IP socket to use:
*/
s = socket(PF_INET,SOCK_STREAM,0);
/*s = socket(PF_INET,SOCK_DGRAM,0); udp使用本行代码*/
if ( s == -1 ) {
displayError("socket(2)");
}
/*
* Get socket option SO_SNDBUF:
*/
optlen = sizeof sndbuf;
z = getsockopt(s,
SOL_SOCKET,
SO_SNDBUF,
&sndbuf,&optlen);
if ( z ) {
displayError("getsockopt(s,SOL_SOCKET,"
"SO_SNDBUF)");
}
assert(optlen == sizeof sndbuf);
/*
* Get socket option SO_SNDBUF:
*/
optlen = sizeof rcvbuf;
z = getsockopt(s,
SOL_SOCKET,
SO_RCVBUF,
&rcvbuf,&optlen);
if ( z ) {
displayError("getsockopt(s,SOL_SOCKET,"
"SO_RCVBUF)");
}
assert(optlen == sizeof rcvbuf);
/*
* Report the buffer sizes:
*/
printf( "Socket s : %d\n",s);
printf( "Send buf: %d bytes\n", sndbuf);
printf( "Recv buf: %d bytes\n", rcvbuf);
close(s);
return 0;
}
/*
* OUTPUT
*
[sgupta@rhel54x64 socket]$ gcc getsndrcv.c -o getsndrcv
[sgupta@rhel54x64 socket]$ ./getsndrcv
Socket s : 3
Send buf: 16384 bytes
Recv buf: 87380 bytes
[sgupta@rhel54x64 socket]$
*/
2、tcp查看
# cat /proc/sys/net/ipv4/tcp_wmem
4096 16384 131072 //第一个表示最小值,第二个表示默认值,第三个表示最大值。
/proc/sys/net/ipv4/tcp_rmem
# cat /proc/sys/net/ipv4/tcp_rmem
4096 87380 174760
发送缓冲区默认是16k,接受缓冲区默认是8k
udp查看
# cat /proc/sys/net/core/rmem_default
212992
# cat /proc/sys/net/core/wmem_default
212992
如上,udp发送和接受默认缓冲区均为208k.
参考
https://blog.csdn.net/c359719435/article/details/8815499
https://blog.csdn.net/test1280/article/details/79776938