语言:C
如何检查 UDP 套接字是否已打开,以便我可以增加使用的端口并在下一个套接字上发送,我不知道服务器需要多少套接字。
我也无法使用端口 0
,因为我必须从特定端口启动。
我现在唯一的解决方案是实现我自己的队列来跟踪开放端口或尝试读取 /proc/net/udp
有定义的API吗?另外,如果没有,您可以提交一个示例代码来跟踪我的程序使用的打开端口吗?
最佳答案
如果端口已在使用中,绑定(bind)将会失败。如果失败,您只需增加您尝试使用的端口。然后保存它以供下次使用时使用。绑定(bind)失败时返回-1。顺便问一下,你用的是linux吗? 您可以设定一个最大和一个最小端口号,当您要使用的端口达到最大时,将端口设置为等于最小值(这是最简单的方法)。 其他方法将需要共享内存或信号量和锁。
关于检查 UDP 端口是否已在 C 中打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27016095/