TCP套接字上的setsockopt SO_BROADCAST

时间:2016-07-26 16:44:45

标签: sockets networking tcp posix setsockopt

在一个现有的网络库中,我的任务是工作,setsockopt有一个我不明白的电话

在这里您可以看到TCP套接字开始创建:

[socket] fd(11) domain(2:AF_INET) type(1:SOCK_STREAM) protocol(0:default)

setsockopt协议级别选择SO_BROADCAST之后,立即拨打IPPROTO_TCP,选项值为5

[setsockopt] fd(11) level(6:IPPROTO_TCP) option(6:SO_BROADCAST) ret(0) option:
    0    0500 0000                                  ....

根据Beej's guide to networking这个&#34;对TCP流套接字没什么作用!哈哈哈&#34; <!/ em>的

问题:

  • 他们到底在做什么?
  • 这有什么意义吗?
  • 如果有的话,肯定应该是option_value=1,那么5的内容是什么?

1 个答案:

答案 0 :(得分:3)

我认为你的setsockopt解码器是错误的。你确定它不是其中之一吗?

#define TCP_NODELAY              1  /* Don't delay send to coalesce packets  */
#define TCP_MAXSEG               2  /* Set maximum segment size  */
#define TCP_CORK                 3  /* Control sending of partial frames  */
#define TCP_KEEPIDLE             4  /* Start keeplives after this period */
#define TCP_KEEPINTVL            5  /* Interval between keepalives */
#define TCP_KEEPCNT              6  /* Number of keepalives before death */

这不是完整的清单。请参阅/usr/include/netinet/tcp.h了解所有内容。