getsockopt()与setsockopt()函数 测试代码

来源:互联网 发布:王天一网络象棋直播 编辑:程序博客网 时间:2024/05/22 01:33
在读本博文时请先看本博文http://blog.csdn.net/u013711616/article/details/51163983对getsockopt()与setsockopt()函数有所了解
/*************************************************************************    > File Name: getsockopt.c    > Author:  ************************************************************************/#include <stdio.h>#include <errno.h>#include <assert.h>#include <string.h>#include <stdlib.h>#include <unistd.h>#include <sys/types.h>          /* See NOTES */#include <sys/socket.h>int main(int arfc, char *argv[]){    int retval;    int sockfd = 0;    int send_size = 0;    int recv_size = 0;    int len = 0;    //创建一个套接字    sockfd = socket(AF_INET, SOCK_STREAM, 0);    if (sockfd < 0)    {        printf("socket err\n");        return -1;    }    //读取缓冲区默认设置情况,获取原始发送数据的缓冲区大小    len = sizeof(send_size);    retval = getsockopt(sockfd, SOL_SOCKET, SO_SNDBUF, &send_size, &len);    if (retval)    {        printf("获取发送缓冲区大小错误\n");    }    printf("发送缓冲区原始大小为:%d 字节\n", send_size);    len = sizeof(recv_size);    retval = getsockopt(sockfd, SOL_SOCKET, SO_RCVBUF, &recv_size, &len);    if (retval)    {        printf("获取发送缓冲区大小错误\n");    }    printf("接收缓冲区原始大小为:%d 字节\n", recv_size);    //设置发送缓冲去大小    send_size = 1024;                   /*发送缓冲区大小为8K*/    len = sizeof(send_size);    retval = setsockopt(sockfd, SOL_SOCKET, SO_SNDBUF, &send_size, len);    if(retval)    {        printf("设置发送缓冲区大小错误\n");    }    //读取缓冲区默认设置情况,获取原始发送数据的缓冲区大小    len = sizeof(send_size);    retval = getsockopt(sockfd, SOL_SOCKET, SO_SNDBUF, &send_size, &len);    if (retval)    {        printf("获取发送缓冲区大小错误\n");    }    printf("发送缓冲区大小为:%d 字节\n", send_size);    //设置接收缓冲区大小    recv_size = 2048;                   /*接收缓冲区大小为8K*/    len = sizeof(recv_size);    retval = setsockopt(sockfd, SOL_SOCKET, SO_RCVBUF, &recv_size, len);    if(retval)    {        printf("设置接收缓冲区大小错误\n");    }    len = sizeof(recv_size);    retval = getsockopt(sockfd, SOL_SOCKET, SO_RCVBUF, &recv_size, &len);    if (retval)    {        printf("获取发送缓冲区大小错误\n");    }    printf("接收缓冲区大小为:%d 字节\n", recv_size);    return 0;}    
0 0
原创粉丝点击