c从已经使用的端口读取udp数据

时间:2018-07-10 23:04:13

标签: c network-programming udp tcp-ip

我一直在使用

中给出的代码示例

How to read the UDP data payload coming from a port using C program

用于从500​​0端口读取udp数据。

但是在我的机器中,该端口已被另一个进程使用,我知道。我想知道的是一种解决方案,即使从其他进程中使用它,也可以使c代码从端口接收数据。

谢谢您的帮助。

1 个答案:

答案 0 :(得分:2)

否,基本上,您不能打开已经被另一个进程使用的UDP端口,除非绑定到该端口的所有套接字以及要绑定到同一端口的所有套接字都设置了选项SO_REUSEPORT。

如果未设置SO_REUSEPORT选项,则第二次绑定到使用的端口将失败,错误代码为EINVAL,请参见bind(2)的手册

  

EINVAL套接字已经绑定到一个地址。

对于选项SO_REUSEPORT,您可以在SO中引用此post