SOL_SOCKET用于什么?

50

如Linux的man页面所述:

将此常量用作getsockoptsetsockopt的级别参数,以操纵本节中描述的套接字级选项。

但我不理解这个解释。 SOL_SOCKET的目的是什么? 它是做什么的?

2个回答

132

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

例如,假设我们要将套接字选项设置为重用地址为1(开启/真),我们传递“级别”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


20
应该选择这个答案。 - mins

10

SOL_SOCKET是指套接字层本身。它用于处理协议无关的选项。

您可以在此处阅读更多相关信息。


47
可以,请您详细说明一下。 - VINOTH ENERGETIC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接