如何用 winsock 向一个广播地址发送一个 ssdp 消息,并接收回应消息。

2018-09-15 17:00:01 +08:00
 SupperMary

google 和 stackflow 都找过了,所以来 v2 问一下。

大概是这样 向 239.255.255.250:1900 发送一个消息,文档说是用 udp,我把消息用 sendto()发出去了,如何监听响应消息? 大佬就不要嘲笑我了,请指教一下。

其实我就是想尝试一下这个小米台灯的局域网控制

https://www.yeelight.com/zh_CN/developer

2699 次点击
所在节点    程序员
11 条回复
InternetExplorer
2018-09-15 17:55:06 +08:00
先监听,再发送。udp 是没有连接的,对方想发给你自然会发给你,前提是你要做好了接收的准备。
tianzry
2018-09-15 18:38:36 +08:00
😎笑
ysc3839
2018-09-15 18:50:30 +08:00
WinSock 大部分是兼容 BSD Socket 的,所以你要做的是搜索 BSD Socket 相关的代码。
succlz123
2018-09-15 19:08:19 +08:00
一个线程发,一个线程收,端口用系统分配的,这个 ip 是 UPnP 的多播地址,不是广播。
jimzhong
2018-09-15 21:23:16 +08:00
可以先发后收,操作系统会 queue 未被用户态收取的 UDP 包。不过你这个地址比较独特,可能需要 setsockopt().
SupperMary
2018-09-16 12:12:15 +08:00
@tianzry 😯
SupperMary
2018-09-16 12:12:50 +08:00
@jimzhong 尝试过了,收不到响应的消息~
SupperMary
2018-09-16 12:13:04 +08:00
SupperMary
2018-09-16 12:13:18 +08:00
@ysc3839 好的,我去看看
SupperMary
2018-09-16 12:13:34 +08:00
@InternetExplorer 好的,我去试一下
SupperMary
2018-10-01 11:31:39 +08:00
试一下上传图片

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

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

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

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

© 2021 V2EX