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

标签 c linux sockets udp

语言:C

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

有定义的API吗?另外,如果没有,您可以提交一个示例代码来跟踪我的程序使用的打开端口吗?

最佳答案

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

关于检查 UDP 端口是否已在 C 中打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27016095/

相关文章:

c++ - 带参数和不带参数的函数之间的执行时间/C++

c - 钳制真实(固定/浮点)值的最快方法?

c - 试图退出阻塞的 UDP 套接字读取

php - Nginx 仅在 php 脚本和子域上抛出 404 错误

c - 查找图像的方向

linux - 关闭连接后如何保持套接字可见?

python - os.path.getsize() 返回大文件的负文件大小(> 3GB 文件大小)

c++ - 如何在 C 中 stub 套接字?

python - 为什么这个 Python 代码不能通过 SSL 连接?

c - 如何确定 SSL 套接字上的数据何时完成