有没有办法检查端口号的可用性?

时间:2014-04-16 17:54:15

标签: c++ networking ip

有没有办法检查端口号的可用性,而无需连接,侦听或绑定?

是否有像bool CheckPort(UINT port_num)?

这样的功能

3 个答案:

答案 0 :(得分:1)

简单的答案是 no ,因为在尝试检查可用性时没有连接到套接字并不是很有意义。你怎么保证在你检查的时候没有其他人使用过那个端口?您必须先connect到端口。

答案 1 :(得分:1)

没有任何连接/监听/绑定,你需要一些操作系统魔法来做到这一点。例如,在Windows中,您可以尝试GetExtendedTcpTableGetExtendedUdpTable等功能。

  

GetExtendedUdpTable / GetExtendedTcpTable函数检索包含a的表   应用程序可用的UDP / TCP端点列表。

这些检索列表使您可以迭代它并获取有用的信息。检查是否有任何正在执行的程序正在侦听该特定端口。

答案 2 :(得分:0)

也许你可以试试这个:如果你绑定到端口0,将分配一个随机端口。然后getsockname()函数可用于查找实际使用的端口。