zoukankan      html  css  js  c++  java
  • 如何在移动视频开发中使用ip组播技术

    AnyChat Platform Core SDK V4.0新增了对IP组播技术的支持,下面介绍如何使用相关的API接口,典型的加入多播组,并向多播组发送数据的代码如下:

     

    1.// 设置本地组播策略
    2.DWORD dwMultiCastPolitic = 1;
    3.BRAC_SetSDKOption(BRAC_SO_NETWORK_MULTICASTPOLITIC,(const char*)&dwMultiCastPolitic,sizeof(DWORD));
    4.  
    5.// 加入多播组
    6.DWORD dwFlags = BRAC_MCFLAGS_JOINGROUP | BRAC_MCFLAGS_SENDDATA | BRAC_MCFLAGS_RECVDATA;
    7.BRAC_MultiCastControl("224.2.3.4", 9810, "", 5, dwFlags);

     

    上面的代码中“dwFlags”标志指示加入多播组“224.2.3.4:9810”,本地的数据通过该多播组进行传输,同时,自己也从该多播组接收其它用户的音视频数据。

     

    当需要本地发送组播数据时,设置本地组播策略是必须的,因为系统默认是采用服务器所配置的网络数据传输策略(AnyChatCoreServer.ini中的“RoutingPolicy”配置项)进行数据发送,如不设置本地组播策略,则不会向组播地址发送数据,设置之后,可以将本地的数据发送多个组播地址和端口,如下面的代码表示音视频数据将向“224.2.3.4:9810”、“224.2.3.4:9812”两个组播端口广播数据:

     

    1.// 设置本地组播策略
    2.DWORD dwMultiCastPolitic = 1;
    3.BRAC_SetSDKOption(BRAC_SO_NETWORK_MULTICASTPOLITIC,(const char*)&dwMultiCastPolitic,sizeof(DWORD));
    4.  
    5.// 加入多播组
    6.DWORD dwFlags = BRAC_MCFLAGS_JOINGROUP | BRAC_MCFLAGS_SENDDATA;
    7.BRAC_MultiCastControl("224.2.3.4", 9810, "", 5, dwFlags);
    8.BRAC_MultiCastControl("224.2.3.4", 9812, "", 5, dwFlags);

    当系统有多块网卡,而需要向其中某一块网卡连接的网络进行组播时,可通过“BRAC_MultiCastControl”的第三个参数来指定即可,第三个参数是指定网卡的IP地址。

  • 相关阅读:
    浅谈对java中锁的理解
    Spring 4 支持的 Java 8 特性
    【转】Java线程面试题 Top 50
    JVM知识点总览-中高级Java工程师面试必备
    [LeetCode] 195. Tenth Line 第十行
    [LeetCode] 281. Zigzag Iterator 之字形迭代器
    [LeetCode] 324. Wiggle Sort II 摆动排序 II
    [LeetCode] 280. Wiggle Sort 摆动排序
    [LeetCode] 167. Fraction to Recurring Decimal 分数转循环小数
    [LeetCode] 187. Repeated DNA Sequences 求重复的DNA序列
  • 原文地址:https://www.cnblogs.com/megan812/p/3889496.html
Copyright © 2011-2022 走看看