检查是否已在C中打开UDP端口

时间:2014-11-19 11:47:57

标签: c linux sockets udp

LANG:C

如何检查UDP套接字是否已打开,以便我可以增加使用的端口并发送到下一个套接字,我不知道服务器需要多少套接字。 我也不能使用port 0,因为我必须从特定端口开始。 我现在只有解决方案是实现我自己的队列来跟踪开放端口或尝试阅读/proc/net/udp

是否有定义的API?如果不是,你能否提交一个示例代码来跟踪我的程序使用的已打开端口?

1 个答案:

答案 0 :(得分:0)

如果端口已在使用中,则bind将失败。如果失败,您只需要增加您尝试使用的端口。然后保存它以便在您想要使用下一个端口时。失败时绑定返回-1。顺便问一下,你在使用linux吗? 您可以建立最大和最小端口号,当您要使用的端口达到最大值时,将端口设置为min(这是最简单的方法)。 其他方法需要共享内存或信号量和锁。