第二次运行程序返回EADDRINUSE for bind

时间:2011-02-20 05:42:00

标签: c linux sockets

  

可能重复:
  Releasing bound ports on process exit
  difference between “address in use” with bind() in Windows and on Linux - errno=98

我有一个简单的服务器应用程序,我正在为Linux编写,它在第一次运行时工作正常,但由于某种原因,它不会在退出时释放端口。在重新运行应用程序以获取端口之前,我似乎必须等待某种超时。否则我在绑定调用上收到EADDRINUSE错误。

我觉得我必须做一些愚蠢的事情,但是我一直在坚持不懈地对抗这个问题并且没有想到它,所以如果有人能指出我正确的方向,那将是伟大的。我已经尝试多次关闭绑定和接受的套接字,并且在不同的点上,但没有运气。