首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络协议 >

winsock实现组播的有关问题

2012-03-24 
winsock实现组播的问题我不是很清楚组播是否也分客户端和服务器。我写了一个程序,分客户端和服务器。服务器:

winsock实现组播的问题
我不是很清楚组播是否也分客户端和服务器。
我写了一个程序,分客户端和服务器。
服务器:创建一个套接口socksrv,将一个组播地址以及端口赋给一个网络地址SOCKADDR_IN srv,然后等待数据帧。
  (没有绑定)
  接收到数据帧后,显示,并且转发给srv
  也可以主动发数据,和转发一样,数据接收也是通过socksrv。

客户端:创建一个套接口socksrv,将一个组播地址以及端口赋给一个网络地址SOCKADDR_IN srv,并将它们绑定(我觉得IP地
  址应该是同一个组播地址,但若srv中设为组播地址,总是绑定不成功,我只好设为本机地址)。然后加入群组
  setsockopt(sockSrv,IPPROTO_IP,IP_ADD_MEMBERSHIP, ( const char* )&mreq,sizeof(mreq));再通过sockSrv
  收发数据。
问题:A服务器,B、C客户端。
  首先A发数据,B、C都能收到
  然后B或C发数据,只能A收到,另一个客户端接收不到(A肯定转发了)。
  请高手指点我这样编有什么问题,谢谢!

[解决办法]

发送者只需发送 一个符合组播的 地址 例如 224.1.1.1
接受者只需监听 组播地址 224.1.1.1 就能收到信息

首先A发数据,B、C都能收到 A(224.1.1.1) B(224.1.1.1)、C(224.1.1.1)

然后B或C发数据,只能A收到 A(224.1.1.2) B(224.1.1.2)、C(224.1.1.1)

热点排行