b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

setsockopt_setsockopt accept_setsockopt设置超时(3)

电脑杂谈  发布时间:2017-05-28 06:12:46  来源:网络整理

应用setsockopt函数

下面的例子代码为一个套接口改变了发送以及接收缓冲区的尺寸。在设置完这些选项以后,程序会得到并报告实际的缓冲区尺寸。

/*setsndrcv.c

*

* Set SO_SNDBUF & SO_RCVBUF Options:

*/

#include

#include

#include

#include

#include

#include

#include

#include

/*

* This function report the error and

* exits back to the shell:

*/

static void bail(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 TCP/IP socket to use:

*/

s = socket(PF_INET,SOCK_STREAM,0);

if(s==-1)

bail("socket(2)");

/*

* set the SO_SNDBUF size :

*/

sndbuf = 5000; /* Send buffer size */

z = setsockopt(s,SOL_SOCKET,SO_SNDBUF,&sndbuf,sizeof sndbuf);

if(z)

bail("setsockopt(s,SOL_SOCKET,"

"SO_SNDBUF)");

/*

* Set the SO_RCVBUF size:

*/

rcvbuf = 8192; /* Receive buffer size */

z = setsockopt(s,SOL_SOCKET,SO_RCVBUF,&rcvbuf,sizeof rcvbuf);

if(z)

bail("setsockopt(s,SOL_SOCKET,"

"SO_RCVBUF)");

/*

* As a check on the above ....

* Get socket option SO_SNDBUF:

*/

optlen = sizeof sndbuf;

z = getsockopt(s,SOL_SOCKET,SO_SNDBUF,&sndbuf,&optlen);

if(z)

bail("getsockopt(s,SOL_SOCKET,"

"SO_SNDBUF)");

assert(optlen == sizeof sndbuf);

/*

* Get socket option SO_RCVBUF:

*/

optlen = sizeof rcvbuf;

z = getsockopt(s,SOL_SOCKET,SO_RCVBUF,&rcvbuf,&optlen);

if(z)

bail("getsockopt(s,SOL_SOCKET"

"SO_RCVBUF)");


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-49663-3.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 李自豪
      李自豪

      直接撞沉美帝看它下次还来不来

    • 卡梅隆迪亚兹
      卡梅隆迪亚兹

      试试DF21和DF26的实战

    热点图片
    拼命载入中...