组播

转载 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); 
*/

相关文章推荐

组播测试工具

组播概述.pdf

  • 2016-04-09 19:20
  • 423KB
  • 下载

udp组播试验-C语言

example.c #include #include #include #include #include #include #include #include #include <...

科莱_ICMP组播攻击案例

  • 2015-07-29 14:07
  • 790KB
  • 下载

如何创建组播应用程序(一)

本文试图成为学习TCP/IP网络组播技术的入门材料。文中介绍了组播通信的概念及原理,以及用于组播应 用编程的 Linux API的详细资料。为了使读者更加完整的了解Linux 组播的整体概念,文中对...

网络组播测试

  • 2014-02-23 18:15
  • 36KB
  • 下载

TCP/IP详解卷1:第十二章 广播和组播

引言 IP地址分为三类:单播、广播和组播。其中,广播和组播只适用于UDP(因为TCP是端对端的连接,无法实现一对多)。 单播,一对一,目的地址是单个主机; 广播,一对全部,目的地址是局域网中的全部主机...
  • wwww4
  • wwww4
  • 2015-10-04 22:44
  • 357

组播应用问题与解决

  • 2014-01-04 12:12
  • 22KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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