我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()
之前进行设置。 这实际上取决于具体的选项设置,所以你必须在选项的基础上处理它们。