Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 在客户端接收udp多播数据包时出现问题_C_Sockets - Fatal编程技术网

C 在客户端接收udp多播数据包时出现问题

C 在客户端接收udp多播数据包时出现问题,c,sockets,C,Sockets,我对多播服务器/客户端应用程序有奇怪的问题。我用C编写了简单的服务器和客户端udp多播应用程序,并使用两台笔记本电脑和一台无线路由器对其进行了测试。服务器通过以太网电缆连接到具有192.168.1.101 IP地址的wrt54gl linksys路由器。IP地址为192.168.1.105的客户端通过无线接口连接到路由器。他们可以互相攻击。服务器使用sendto函数发送UDP数据包,客户端使用recvfrom函数接收这些数据包。当我运行服务器时,我可以在wireshark中看到发送给IP地址为2

我对多播服务器/客户端应用程序有奇怪的问题。我用C编写了简单的服务器和客户端udp多播应用程序,并使用两台笔记本电脑和一台无线路由器对其进行了测试。服务器通过以太网电缆连接到具有192.168.1.101 IP地址的wrt54gl linksys路由器。IP地址为192.168.1.105的客户端通过无线接口连接到路由器。他们可以互相攻击。服务器使用sendto函数发送UDP数据包,客户端使用recvfrom函数接收这些数据包。当我运行服务器时,我可以在wireshark中看到发送给IP地址为226.1.1.1的多播组的udp数据包,但在客户端,我没有收到这些数据包,也无法在wireshark中看到它们。我很确定代码是正确编写的。你有多播的经验来给我建议吗


谢谢

如果您从一台计算机ping多播组,数据包是否会到达另一台计算机?如果不是,则问题出在路由器上。在执行此操作之前,您是否清除了高级路由器配置中的“筛选器多播”设置?各位,我知道问题出在哪里了……如果服务器和客户端位于同一子网,则多播正在工作。但是,如果我的服务器连接到公共网络,我的路由器也连接到公共网络,然后我将客户端连接到路由器的lan,这不起作用…它们位于不同的子网中…路由器上是否有任何选项(我也可以安装dd wrt)要解决这个问题?问题解决了,而且很简单:客户端靠近路由器,所以他无法接收数据包。多播在本地子网和两个不同的子网中工作,具体取决于TTL参数。