请高手解释一下getsockopt和setsockopt。

jyc_nj 2002-02-05 11:49:10
什么时候用?什么用这两个函数。
...全文
103 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jyc_nj 2002-02-06
  • 打赏
  • 举报
回复
谢谢lurenfu
想看看有没有其他回答,等一天再给分。
lurenfu 2002-02-05
  • 打赏
  • 举报
回复
如下:

int on = 1;
setsockopt( sock, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on) ); //免bind addr in use之苦

struct timeval tv;
tv.tv_sec = 10; //设置超时为10秒
tv.tv_usec = 0;
setsockopt( sock, SOL_SOCKET, SO_SNDTIMEO, &tv, sizeof(tv) ); // 设置发送超时为10秒
同理,setsockopt( sock, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv) ); // 设置接收超时为10秒

int bufsize = 65535 *2;
setsockopt( sock, SOL_SOCKET, SO_RCVBUF, &bufsize, sizeof(bufsize) ); //设置接收缓冲区为65535*2bytes大小

int on = 1;
setsockopt( sock, SOL_SOCKET, SO_HDRINCL, &on, sizeof(on) ); //可用于RAW SOCKET
jyc_nj 2002-02-05
  • 打赏
  • 举报
回复
你们说的我都知道,但不明白应该用在哪种情况下,就象wwwunix说的“在你对socket有特殊要求时使用”,真得何没有说一样:(
wwwunix 2002-02-05
  • 打赏
  • 举报
回复
getsockopt是获取socket设置项,setsockopt是设置socket设置项,一般在你对socket有特殊要求时使用。
其用法如下:
#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,const void *optval,socklen_t *optlen);
stablethread 2002-02-05
  • 打赏
  • 举报
回复
msdn!!

4,356

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧