关闭

关于套节口选项的问题

409人阅读 评论(0) 收藏 举报
#include int fcntl(int fd, int cmd, ....../*int arg*/); 使用fcntl开启非阻塞I/O的典型代码是: int flags; if((flags = fcntl(fd, F_GETFL, 0)) < 0) err_sys("F_GETFL error"); flags |= O_NONBLOCK; if(fcntl(fd, F_SETFL, flags) <0) err_sys("F_SETFL error"); 使用fcntl关闭非阻塞I/O的典型代码是: flags &= ~O_NONBLOCK; if(fcntl(fd, F_SETFL, flags) < 0) err_sys("F_SETFL error"); 7.1 输出缺省TCP、UDP发送&接收缓冲区大小 #include #include #include void main(int argc, char **argv) { int tcpfd,udpfd; socklen_t len; int tcprecvbuf,tcpsendbuf,udprecvbuf,udpsendbuf; len = sizeof(int); tcpfd = socket(AF_INET, SOCK_STREAM, 0); udpfd = socket(AF_INET, SOCK_DGRAM, 0); getsockopt(tcpfd,SOL_SOCKET,SO_RCVBUF,&tcprecvbuf,&len); getsockopt(udpfd,SOL_SOCKET,SO_RCVBUF,&udprecvbuf,&len); getsockopt(tcpfd,SOL_SOCKET,SO_SNDBUF,&tcpsendbuf,&len); getsockopt(udpfd,SOL_SOCKET,SO_SNDBUF,&udpsendbuf,&len); prinf("tcprecvbuf=%d,tcpsendbuf=%d,udprecvbuf=%d,udpsendbuf=%d",tcprecvbuf,tcpsendbuf,udprecvbuf,udpsendbuf); } 编译输出为: tcprecvbuf=87380,tcpsendbuf=16384,udprecvbuf=65535,udpsendbuf=65535;
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:3868次
    • 积分:65
    • 等级:
    • 排名:千里之外
    • 原创:3篇
    • 转载:2篇
    • 译文:0篇
    • 评论:0条
    文章存档