我的程序绑定了一个端口进行监听,在程序终止后,该端口大约有一段时间不可用,在此期间,任何再次打开同一端口进行监听的尝试都会失败。我需要等待一段时间才能重新打开端口。
我需要反复绑定端口,因为我需要反复重新测试我的服务器程序。是否有任何 Linux 命令可以提前释放端口,或者任何编程代码可以执行相同的操作?我用 C++ 编写代码并使用 gSOAP 框架。
基本上我将使用以下方式绑定端口
soap_bind(&newsoap, NULL, 13518, 100);
我绑定服务器来监听端口13518
。
Ubuntu 版本:11.10
我在 Windows 中尝试了相同的代码,程序终止后端口立即可用。在 Linux 中,我是否需要在程序终止前执行一些额外步骤来解除端口绑定?
答案1
答案2
您必须关闭套接字。这是一项安全功能,开放的端口将被内核锁定一段时间。
我不知道你的框架,你必须查看它的文档以了解如何使用它关闭端口。我只使用直接内核调用来使用端口。
您可能需要阅读手册页socket
bind
listen
和更多参考页面才能真正了解其工作原理。