妈妈说要检查错误

我们来检查下面这行代码的错误,它把套接字绑定到端口:

妈妈说要检查错误 - 图1

再次关闭服务器,立即重启,这次得到了更多信息:

妈妈说要检查错误 - 图2

当服务器已经响应某个客户端时关闭服务器,然后立即重启,bind系统调用会失败。由于原来的代码没有检查错误,所以即使不能使用服务器端口,后面的代码还是会运行。

绑定端口有延时

妈妈说要检查错误 - 图3

当你在某个端口绑定了套接字,在接下来的30秒内,操作系统不允许任何程序再绑定它,包括上一次绑定这个端口的程序。只要在绑定前设置套接字的某个选项就可以解决这个问题。

妈妈说要检查错误 - 图4

通过以上代码,套接字就能重新使用已经绑定过的端口。也就是说你可以关闭服务器然后马上重启,在第二次绑定端口时就不会发生错误了。