首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我可以接收多播数据包,但不能接收单播数据包。

我可以接收多播数据包,但不能接收单播数据包。
EN

Stack Overflow用户
提问于 2014-08-05 17:27:00
回答 1查看 1.9K关注 0票数 1

我有一个套接字绑定到一个端口1900来监听多播数据包。这部分工作得很好。我成功地接收了多播数据包。

另外,我使用相同的套接字将多播数据包发送到同一个端口1900。在响应时,我希望收到一个单播包。根据Wireshark的说法,我的主机接收到了单播数据包,但是它没有出现在套接字中。

如果删除绑定到端口1900,那么单播数据包将出现在套接字中,但在这种情况下,套接字将不再接收多播数据包。

我查过了,加入一个多播组没有任何意义。即使是一个简单的测试应用程序,它绑定到端口1900并将多播发送到端口1900,也无法接收单播响应。

主要问题是使用相同的源端口和目标端口吗?还是从特定端口发送多播数据包会阻止套接字将单播数据包发送到同一个端口?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-27 12:08:55

昨天我在windows7上遇到了这个问题,并找出了根本原因。假设您正在执行SSDP MSearch,接收响应,并侦听SSDP通知。

  1. 启动-> Run -> services.msc
  2. 检查服务"SSDP发现“。它应该处于“开始”状态。

单播响应被此服务吃掉,永远无法到达套接字。

解决方案1:

您不需要更改代码,只需停止SSDP发现服务即可。一切都会好起来的。

解决方案2:不需要停止SSDP发现服务。但是你需要两个插座:

  • 套接字1:绑定到端口0或1900年以外的端口。发送多播并从此套接字接收单播响应。
  • 套接字2:绑定到端口1900,只听多播通知
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25144831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档