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地址。