Python 不支持指定源组播吗

2018-05-03 15:32:15 +08:00
 sm1314

指定源组播,Java 和 C#都完全支持的,Python 不支持吗。。。项目做了一半发现 Python 的 socket 不支持 igmpv3 指定源组播,坑爹啦

3282 次点击
所在节点    Python
8 条回复
weyou
2018-05-03 16:03:19 +08:00
Python 的 socket 不就直接是系统底层 socket 嘛,底层支持没道理 python 不支持。
Shura
2018-05-03 16:12:03 +08:00
sm1314
2018-05-03 17:16:00 +08:00
@weyou 大部分参数相同,指定源组播部分,但 socket 选项设置中缺少 IP_ADD_SOURCE_MEMBERSHIP 这个参数。。。
sm1314
2018-05-03 17:19:18 +08:00
@Shura 多谢大佬,这个网页我之前看到过。

if not hasattr(socket, 'IP_ADD_SOURCE_MEMBERSHIP'):
setattr(socket, 'IP_ADD_SOURCE_MEMBERSHIP', 39)

这句感觉像是某种 hack,经过试验发现 windows 下并不能运行,提示设置了 socket 不支持的属性啥的。然后自己又用 C#写了个组播转发的程序,把 igmpv3 转成 python 能够识别的 igmpv2,有点蛋疼 ==。
lolizeppelin
2018-05-03 18:43:59 +08:00
你这转发不如用 c 写个 让 Python 调
weyou
2018-05-03 19:33:25 +08:00
直接 hardcode 这个常量的值不行吗?
wwqgtxx
2018-05-04 10:11:54 +08:00
@sm1314 因为这个值在 windows 下是 15
#define IP_ADD_SOURCE_MEMBERSHIP 15 // Join IP group/source.
你可以去 windows sdk 中看看 ws2ipdef.h 的源代码
sm1314
2018-05-04 15:05:20 +08:00
@wwqgtxx 多谢大神,win10 64 位测试可行

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/451773

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX