如果我的 C 程序使用套接字、绑定到localhost:9025
、交换一些数据、被手动杀死并重新启动,它有时会崩溃并出现以下错误:
地址已在使用中。
我试图寻找“使用端口的 pid”的所有 SE 推荐软件都未能返回任何进程 ID,因此我假设当时没有使用端口的进程,9025
应该是这种情况。
尽管如此,从我从对类似问题的评论中收集到的信息来看,在我看来,当且仅当进程使用该特定地址时,“地址”才“已在使用”。那为什么这是假的呢?
现在我假设操作系统会跟踪正在使用的地址和未使用的地址,但情况是这样吗?如果是这样,我会很高兴你能告诉我如何纠正它,因为我对这个问题的最佳解决方案是“等待一段不确定的时间”。
编辑:我使用 Linux 5.2.2-arch1-1-ARCH x86_64