c - UDP 单播 : two processes listening on same udp port; only one receiving packets

标签 c linux sockets udp

目的: 在两个不同的进程中接收发送到单个端口的 UDP 单播数据包。

系统:Linux,语言:C

我可以使用 SO_REUSEADDR 将两个不同进程中的两个套接字绑定(bind)到同一个端口。但是,正如预期的那样,数据包仅在一个(后面绑定(bind)的一个)中收到。

是否可以在两个进程中都收到数据包?如果不是,tcpdump 如何能够读取但不使用数据包。

最佳答案

套接字 API 是不可能的,tcpdump 在任何 TCP/IP 处理之前直接从网络接口(interface)挑选数据包。

你唯一的机会是在一个进程中接收数据包并将它们重新发送到另一个进程。

关于c - UDP 单播 : two processes listening on same udp port; only one receiving packets,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9721176/

相关文章:

c - utf-8 字符串的最佳哈希是什么

c - 如何使用 Kernel Panic 日志确定内存损坏的原因?

linux - 包含当前目录变量的 Bash 别名

sockets - 验证多播端口范围

c - C中的重传服务器队列实现

c - 使用 Malloc 和 Free 调试指针

linux - 如何在登录时在 linux 命令行中添加显示消息?

c - Linux客户端套接字: can't set O_NONBLOCK before connect?

c++ - C++中依赖网络I/O提供跨线程同步

c - 使用英特尔 aes API 时出错