日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 芯聞號 > 充電吧
[導(dǎo)讀]經(jīng)歷了千辛萬苦的嘗試,原來onvif上處理多網(wǎng)卡的選擇是如此簡單,soap的設(shè)計(jì)早就考慮好了此問題??嗨欢嗾f了,步驟如下:1、獲取本機(jī)的各網(wǎng)卡的IP地址。????? 在網(wǎng)上看見講得比較多的方法有兩個(gè)

經(jīng)歷了千辛萬苦的嘗試,原來onvif上處理多網(wǎng)卡的選擇是如此簡單,soap的設(shè)計(jì)早就考慮好了此問題。

苦水不多說了,步驟如下:

1、獲取本機(jī)的各網(wǎng)卡的IP地址。

????? 在網(wǎng)上看見講得比較多的方法有兩個(gè)。

????? 一是將ipconfig? /all的運(yùn)行結(jié)果保存到文件,然后分析出各IP地址。但是我實(shí)操時(shí)遇到了操作系統(tǒng)的語言問題。我測試了三臺電腦,一臺回復(fù)全英文的,一臺回復(fù)中英文結(jié)合的,裝了繁體系統(tǒng)的那臺返回英文和繁體結(jié)合的。想不到如何處理,于是放棄了本方法。希望各大牛能告訴我他們的處理方法。

???????第二種方法是通過gethostname,加gethostbyname這兩個(gè)庫函數(shù)組合獲取各網(wǎng)卡的IP地址。我選用就是此方法的,在這里我就不列舉我的具體做法了,感覺處理得不太好,給獻(xiàn)丑了,網(wǎng)上例子也不少。此方法可以獲取到AF_INET和IF_INET6的地址,并且很好地排除了工作站上那些“bluetooth 網(wǎng)絡(luò)”等不關(guān)心的網(wǎng)卡。

?

2、在soap中設(shè)置IP地址

???????? 只要設(shè)置好soap的ipv4_multicast_if參數(shù),一切就由soap內(nèi)部搞定了。很簡單吧。

	struct?in_addr?if_req;
	if_req.s_addr?=?inet_addr("xxx.xxx.xxx.xxx");??//?想綁定的IP地址
	soap.ipv4_multicast_if?=?(char*)soap_malloc(&soap,?sizeof(in_addr));
	memset(soap.ipv4_multicast_if,?0,?sizeof(in_addr));
	memcpy(soap.ipv4_multicast_if,?(char*)&if_req,?sizeof(if_req));

?????我是在設(shè)定setsockopt的IP_ADD_MEMBERSHIP參數(shù),即加入組播后設(shè)定以上參數(shù)的。

總結(jié):要不是偶然看見了soap結(jié)構(gòu)中有此參數(shù),可能我還沒能從解決問題的苦海中解放出來。看來必須再好好研究soap的結(jié)構(gòu)了。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉