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)