特定接口(interface)上的Python扭曲框架多播绑定(bind)

标签 python interface twisted multicast

在谷歌上下搜索后,我还没有找到以下问题的明确答案: 大致遵循以下指南: http://twistedmatrix.com/documents/10.2.0/core/howto/udp.html#auto3

如何将扭曲的多播监听器绑定(bind)到多播地址以及特定或所有接口(interface)。

在查看 reactor.listenMulticast 时,它不提供硬件接口(interface)的抽象,仅提供由 IP 地址表示的伪接口(interface)。我找不到只绑定(bind)多播地址的方法,例如特定接口(interface)或所有接口(interface)的 224.0.0.1。 任何人都可以提供更多信息吗?

最佳答案

reactor.listenMulticast 返回一个 twisted.internet.udp.MulticastPort 对象。该对象拥有您正在监听的套接字。因此,请注意 reactor.listenMulticast 的结果并设置适当的套接字选项(在本例中它看起来像 SO.BINDTODEVICE)以及一个空终止设备字符串。

import IN, socket, struct

udp_port = reactor.listenMulticast(8005, MulticastServerUDP())
dev = "eth0" + "\0"
udp_port.socket.setsockopt(socket.SOL_SOCKET, IN.SO_BINDTODEVICE, dev)
reactor.run()

如果它直接通过 listenMulticast 调用公开就更好了,但假设这可行,这将是一个非常简单的补丁。如果这能解决您的问题,请告诉我。

关于特定接口(interface)上的Python扭曲框架多播绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5498652/

相关文章:

python - Numpy 选择默认条件返回错误值

java - 接口(interface)的静态字段和最终字段的含义

c# - 如何在 C# 中对变量定义中的接口(interface)求和?

python - 扭曲的 16 线接收器 : No callbacks fired

python - 删除字符串中的所有空格

python - 如何使用 Boto 启动/停止 AWS RDS 实例?

C# 继承 View 和演示者

python - 如何告诉 Twisted http 服务器忽略索引文件

python - Apache 与扭曲

python - Ansible 和 virtualenvwrapper