我希望加入几个多播组,发送、接受选定的多播数据。
1、如何加入多个多播组?
2、能否在一个端口(socket)上接收多个多播组的数据?望不吝赐教!

解决方案 »

  1.   

    SOCKET WSAJoinLeaf(
                SOCKET s,//创建的套接字
                const struct sockaddr*name, //加入的组地址
                int namelen,//组地址结构长度
                LPWSABUF lpCAllerData,//组建立时候传给其他同等主机的信息,在windows平台为NULL
                LPWSABUF lpCAlleeData,//组建立时候从其他主机收到的信息,在windows平台为NULL
                LPQOS    lpSQos,//
                LPQOS    lpGQos,//保留
                DWORD    dwFlags //标志位
               );
    还是建议你找本书看看呵呵
    第2个问题,我觉得应该可以.
      

  2.   

    多谢flyingjm!
    需要说明的是我的问题是如何加入几个多播组,不是一个多播组。
      

  3.   

    加入每个多播地址一次就行了。
    mreq.imr_interface.s_addr = inet_addr("127.0.0.1");
    mreq.imr_multiaddr.s_addr = inet_addr("234.5.6.7");
    setsockopt(s,IPPROTO_IP,IP_ADD_MEMBERSHIP,(char*)&mreq,sizeof(mreq));