【发布时间】:2019-06-03 09:05:38
【问题描述】:
我正在制作一个带有客户端/服务器的井字游戏应用程序。当按下 CTRL+C 时,我有一个自定义处理程序,它关闭套接字(监听的也是),然后退出。但是,如果我尝试再次运行该程序,有时它会给出一个错误,表明该端口已被使用,因此它无法绑定,持续几分钟(或直到重新启动)到几秒钟,有时它根本不会发生。我怀疑这是一个正常的过程,但是我想要第二个意见。此外,任何有关如何避免这种情况的建议都将不胜感激!
编辑:忘记提及,有时,终止终端工作。
【问题讨论】:
-
你能提供一个可行的例子吗?
-
代码大约有 500 行,所以我猜你不是那个意思。发生这种情况的一个例子是,例如,当玩家获胜时,服务器和两个客户端都被杀死(套接字关闭,进程被杀死)。有时在那之后我需要等待或重新启动。
-
你如何处理你的客户,
threads,select()...? -
你在使用
signal()吗? -> What happens if you use it?
标签: c unix tcp client-server