【发布时间】:2013-04-03 12:57:52
【问题描述】:
以前有人问过这个问题,但我似乎无法理解它,因为我见过的所有问题的小细节都让我感到厌烦......
我一直遇到问题,当我创建 TCP 套接字服务器时,如果我建立连接,端口在 X 时间内无法使用(如果未与客户端建立连接,我可以在终止后重新运行程序没有问题)。这显然与 TCP 在断开连接之前需要的超时有关。
我在服务器和客户端的套接字上都使用了 close(socketfd) 没有占上风...有没有办法让套接字在成功终止后立即可用(如在 fd 上调用关闭)而不必须等待看似永远的事情还是重新启动机器?
【问题讨论】:
-
您使用哪个 TCP 套接字库?我的猜测是 TCP 超时可以根据您的需要进行调整。
-
我使用了 linux 的 #include
.......我想我的主要问题是如何使用 SO_REUSEADDR.. 我看到一堆帖子说要使用它,但没有人说如何:\ -
基本上:int optval = 1; setsockopt(yoursocket,SOL_SOCKET,SO_REUSEADDR,&optval,sizeof(optval));更多详情可细阅documentation
-
我应该把这个放在哪里?在哪里?