组播

转载 2011年01月19日 10:35:00

组播播出程序中主要的代码: 
        if   ((hSendSocket   =   socket(AF_INET,   SOCK_DGRAM,   0))   ==   INVALID_SOCKET) 
        { 
                sprintf(szPromoteMsg, "socket   failed   with:   %d/n ",   WSAGetLastError()); 
                AfxMessageBox(szPromoteMsg); 

                return   ; 
        } 
        //   Bind   the   socket   to   the   local   interface.   This   is   done   so   
        //   that   we   can   receive   data. 
        local.sin_family   =   AF_INET; 
        local.sin_port       =   htons(m_iPort); 
        local.sin_addr.s_addr   =   m_dwInterface; 

        if   (bind(hSendSocket,   (struct   sockaddr   *)&local,   
                sizeof(local))   ==   SOCKET_ERROR) 
        { 
                sprintf(szPromoteMsg, "bind   failed   with:   %d/n ",   WSAGetLastError()); 
                AfxMessageBox(szPromoteMsg); 

        return   ; 
        } 
        //   Setup   the   im_req   structure   to   indicate   what   group   we   want 
        //   to   join   as   well   as   the   interface 
        // 
        remote.sin_family             =   AF_INET; 
        remote.sin_port                 =   htons(m_iPort); 
        remote.sin_addr.s_addr   =   (m_dwTargetIPAddress); 
        
        mcast.imr_multiaddr.s_addr   =   (m_dwTargetIPAddress); 
        mcast.imr_interface.s_addr   =   m_dwInterface;//±¾µØÒÔÌ«Íø   MAC   µØÖ· 

        if   (setsockopt(hSendSocket,   IPPROTO_IP,   IP_ADD_MEMBERSHIP, 
                (char   *)&mcast,   sizeof(mcast))   ==   SOCKET_ERROR) 
        { 
                sprintf(szPromoteMsg, "setsockopt(IP_ADD_MEMBERSHIP)   failed:   %d/n ",           
                                                            WSAGetLastError()); 
                AfxMessageBox(szPromoteMsg); 

                return   ; 
        } 
        //   Set   the   TTL   to   something   else.   The   default   TTL   is   1. 
        optval   =   8; 
        if   (setsockopt(hSendSocket,   IPPROTO_IP,   IP_MULTICAST_TTL,   
                (char   *)&optval,   sizeof(int))   ==   SOCKET_ERROR) 
        { 
                sprintf(szPromoteMsg, "setsockopt(IP_MULTICAST_TTL)   failed:   %d/n ",   
                WSAGetLastError()); 
                AfxMessageBox(szPromoteMsg); 

                return   ; 
        } 
        //   Disable   the   loopback   if   selected.   Note   that   on   NT4   and   Win95 
        //   you   cannot   disable   it. 
        if   (bLoopBack) 
        { 
                optval   =   0; 
                if   (setsockopt(hSendSocket,   IPPROTO_IP,   IP_MULTICAST_LOOP, 
                        (char   *)&optval,   sizeof(optval))   ==   SOCKET_ERROR) 
                { 
                        sprintf(szPromoteMsg, "setsockopt(IP_MULTICAST_LOOP)   failed:   %d/n ",     
                        WSAGetLastError()); 
                        AfxMessageBox(szPromoteMsg); 

                        return   ; 
                } 
        } 
        bAllowedSending=TRUE; 
/* 
        BROADCASTPARAM   *pBroadcastParam=new   BROADCASTPARAM   ; 
        pBroadcastParam-> remote=remote; 
pBroadcastParam-> nRate=m_iRate; 
pBroadcastParam-> hBroadcastSocket=hSendSocket; 
pBroadcastParam-> bAllowedSending=bAllowedSending; 

AfxBeginThread(BroadcastThreadProc, 
                                                  (LPVOID)pBroadcastParam, 
  THREAD_PRIORITY_NORMAL, 
  0, 
  0, 
  NULL); 
*/

Zigbee组播实验

  • 2017年11月17日 17:00
  • 47.31MB
  • 下载

组播测试工具

  • 2016年01月28日 11:18
  • 6KB
  • 下载

dvb-t linux下DVBLAST 组播软件的安装与使用

DVBlast是一个简单而强大的流媒体应用,基于Linux的DVB API开发。它打开一个DVB设备进行调整,放置PID过滤器,配置CAM的模块,组合数据包以输出RTP数据。DVBlast被设计为一个...

科莱_ICMP组播攻击案例

  • 2015年07月29日 14:07
  • 790KB
  • 下载

linux下使用socket实现组播

原文地址: http://www.tenouk.com/Module41c.html 概述 组播提供了在网络中进行一对多的发送的机制,组播可以是在一个网段内,也可以是跨网段的,不过...

C# udp组播

  • 2017年10月23日 09:12
  • 18KB
  • 下载

组播应用问题与解决

  • 2014年01月04日 12:12
  • 22KB
  • 下载

Linux下发送与接收组播数据(socket编程)

Sender.cpp #include #include #include #include #include #inc...

网络组播测试

  • 2014年02月23日 18:15
  • 36KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:组播
举报原因:
原因补充:

(最多只允许输入30个字)