在Linux中使用socket进行网络编程的时候,发现修改了代码之后,再次运行,在bind时会出现address already in use的错误。可是程序明明是正常运行完毕退出的,退出前也关闭了对应的socket。
看到《bind出现Address already in use解决方法 》,原来由 TCP 套接字状态TIME_WAIT 引起。该状态在套接字关闭后约保留 2 到 4 分钟。在 TIME_WAIT 状态退出之后,套接字被删除,该地址才能被重新绑定而不出问题。
http://blog.youkuaiyun.com/petershina/article/details/7955183
http://www.ibm.com/developerworks/cn/linux/l-sockpit/