何时调用setsockopt? bind()和connect()之前?

我inheritance了一些叫做:

bind(tcpSocket, (struct sockaddr*)&server_addr, sizeof(server_addr)); 

在打电话之前

 setsockopt(tcpSocket, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(int)); 

毫不奇怪,这导致了“地址已被使用”的信息。 简单地交换电话的顺序解决了问题。

这带来了一个问题:一般来说,在调用bind()之前,是否应该调用setsockopt() bind() ? 调用connect()

SO_REUSEADDR需要在bind()之前设置。 但是,并不是所有的选项都需要在bind()之前,甚至在connect()之前进行设置。 这实际上取决于具体的选项设置,所以你必须在选项的基础上处理它们。