什么是SOL_SOCKET用于?

时间:2014-02-02 20:40:31

标签: c sockets network-programming

正如Linux man页面

中所述
  

使用此常量作为getsockoptsetsockopt的级别参数来操作本节中描述的套接字级别选项

但我没有得到这个解释。 SOL_SOCKET的目的是什么?它有什么作用?

2 个答案:

答案 0 :(得分:60)

检索套接字选项或设置套接字选项时,您可以指定选项名称以及级别。当level = SOL_SOCKET时,将在套接字本身中搜索该项目。

例如,假设我们要设置套接字选项以将地址重用为1(on / true),我们传入“level”SOL_SOCKET以及我们想要设置的值。

int value = 1;    
setsockopt(mysocket, SOL_SOCKET, SO_REUSEADDR, &value, sizeof(value));

这会将我的套接字中的SO_REUSEADDR设置为1.

我自己也被困在这里,文档非常神秘。这里有更详细的文档:http://pubs.opengroup.org/onlinepubs/7908799/xns/getsockopt.html

答案 1 :(得分:5)

SOL_SOCKET是套接字层本身。它用于独立于协议的选项。

您可以阅读更多here