免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3652 | 回复: 3
打印 上一主题 下一主题

[函数] 请教两函数:getsockopt和setsockopt [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-08-22 09:47 |只看该作者 |倒序浏览
请教函数:
           getsockopt(int sockfd,int level,int optname,void      *optval,socklen_t *optlen)
           getsockopt(int sockfd,int level,int optname,const void      *optval,socklen_t *optlen)
的意义和各参数的意义,请教如何用它们
谢谢!

论坛徽章:
0
2 [报告]
发表于 2003-08-22 09:57 |只看该作者

请教两函数:getsockopt和setsockopt

man getsockopt或者看UNP

论坛徽章:
0
3 [报告]
发表于 2003-08-23 17:24 |只看该作者

请教两函数:getsockopt和setsockopt

#include <sys/socket.h>;
int getsockopt(int sockfd, int  level, int optname, void * optval, socklen_t *optlen);
int setsockopt(int sockfd, int  level, int optname, void * optval, socklen_t *optlen);
                        返回值: 0  --ok      -1---erro
sockfd必需指向一个已打开的套接口描述字.
level(级别) 指定系统中解释选项的代码: 普通套接口代码或特定于协议的代码.
optval是一个指向变量的指针,通过它,或由setsockopt取得选项的新值,或由getsockopt存储选项的当前值.此变量的大小由最后一个参数指定.
如:

int
main(argc,argv)
int argc;
char **argv;
{
           int fd, len;
           struct sock_opts *ptr;
           
           fd  =  Socket(AF_INET, SOCK_STREAM, 0);
           for(ptr = sock_opts; ptr->;opt_str != NULL; ptr++ )
           {
                 printf("%s:", ptr->;opt_str);
                 if(ptr->;opt_val_str == NULL)
                       printf("(undefined)\n";
                 else
                  {
                       len = sizeof(val);
                       if(getsockopt(fd, ptr->;opt_level, ptr->;opt_name, &val, &len) == -1)
                         {
                             err_ret("getsockopt error";
                          }
                      else
                          {
                                   printf("default = %s\n", (*ptr->;opt_val_str)(&val, len));
                           }

                   }

              }
         exit(0);

}



        -----------------------------------------载自<< unix 网络编程>;>;(第一卷)

论坛徽章:
0
4 [报告]
发表于 2003-08-23 21:01 |只看该作者

请教两函数:getsockopt和setsockopt

解释的非常好。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP