【问题标题】:c read udp data from a already used portc 从已经使用的端口读取 udp 数据
【发布时间】:2018-12-18 21:06:18
【问题描述】:

我一直在使用

中给出的代码示例

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

用于从 5000 端口读取 udp 数据。

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

谢谢你的帮助。

【问题讨论】:

    标签: c network-programming udp tcp-ip


    【解决方案1】:

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

    如果没有设置 SO_REUSEPORT 选项,您与使用的端口的第二次绑定将失败,错误代码为 EINVAL,请参阅bind(2) 的手册

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

    对于选项SO_REUSEPORT,可以参考这个post in SO。

    【讨论】:

    • 谢谢。你的意思是我应该在我的 c 代码的某个地方设置这个选项?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-30
    • 1970-01-01
    • 2013-07-10
    • 2011-12-21
    • 1970-01-01
    相关资源
    最近更新 更多