地址使用的是D類IP地址(224.0.0.0到239.255.255.255)。
在朝陽縣等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站 網(wǎng)站設(shè)計(jì)制作按需網(wǎng)站設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計(jì),全網(wǎng)營銷推廣,成都外貿(mào)網(wǎng)站制作,朝陽縣網(wǎng)站建設(shè)費(fèi)用合理。
UDP組播的基本步驟:創(chuàng)建udp socket、bind、加入組播組、發(fā)送/接收數(shù)據(jù)、close。
組播傳輸:數(shù)據(jù)發(fā)送者(源數(shù)據(jù))將同一數(shù)據(jù)發(fā)送到多個(gè)接受者(組播組成員)。無論有多少個(gè)接受者,在整個(gè)網(wǎng)絡(luò)鏈路上,只有一份該數(shù)據(jù)(在特殊場合,可以節(jié)省帶寬,減少主干網(wǎng)絡(luò)阻塞)。
Qt 有函數(shù)可以加入組播的.不過要Qt 4.8 或以上的版本才有....
bool joinMulticastGroup(const QHostAddress groupAddress)
也是找了好幾個(gè)月了,不管過不過期先分享下,后人少走點(diǎn)麻煩
打開CMD命令行進(jìn)VLC工作目錄,用命令行運(yùn)行vlc,后面帶參數(shù),比如:
vlc rtp://192.168.1.1@224.1.1.1:1234
其中RTP可以換UDP,192.168.1.1是指定源
CoreDNS是使用go語言編寫的快速靈活的DNS服務(wù),采用鏈?zhǔn)讲寮J剑總€(gè)插件實(shí)現(xiàn)獨(dú)立的功能,底層協(xié)議可以是tcp/udp,也可以是TLS,gRPC等。默認(rèn)監(jiān)聽所有ip地址,可使用bind插件指定監(jiān)聽指定地址。
格式如下
SCHEME是可選的,默認(rèn)值為dns://,也可以指定為tls://,grpc://或者h(yuǎn)ttps://。
ZONE是可選的,指定了此dnsserver可以服務(wù)的域名前綴,如果不指定,則默認(rèn)為root,表示可以接收所有的dns請求。
PORT是選項(xiàng)的,指定了監(jiān)聽端口號(hào),默認(rèn)為53,如果這里指定了端口號(hào),則不能通過參數(shù)-dns.port覆蓋。
一塊上面格式的配置表示一個(gè)dnsserver,稱為serverblock,可以配置多個(gè)serverblock表示多個(gè)dnsserver。
下面通過一個(gè)例子說明,如下配置文件指定了4個(gè)serverblock,即4個(gè)dnsserver,第一個(gè)監(jiān)聽端口5300,后面三個(gè)監(jiān)聽同一個(gè)端口53,每個(gè)dnsserver指定了特定的插件。
下圖為配置的簡略圖
a. 從圖中可看到插件執(zhí)行順序不是配置文件中的順序,這是因?yàn)椴寮?zhí)行順序是在源碼目錄中的plugin.cfg指定的,一旦編譯后,順序就固定了。
b. .根serverblock雖然指定了health,但是圖中卻沒有,這是因?yàn)閔ealth插件不參與dns請求的處理。能處理dns請求的插件必須提供如下兩個(gè)接口函數(shù)。
dns請求處理流程
收到dns請求后,首先根據(jù)域名匹配zone找到對(duì)應(yīng)的dnsserver(最長匹配優(yōu)先),如果沒有匹配到,則使用默認(rèn)的root dnsserver。
找到dnsserver后,就要按照插件順序執(zhí)行其中配置的插件,當(dāng)然并不是配置的插件都會(huì)被執(zhí)行,如果某個(gè)插件成功找到記錄,則返回成功,否則根據(jù)插件是否配置了fallthrough等來決定是否執(zhí)行下一個(gè)插件。
plugin.cfg
源碼目錄下的plugin.cfg指定了插件執(zhí)行順序,如果想添加插件,可按格式添加到指定位置。
源碼目錄下的Makefile根據(jù)plugin.cfg生成了兩個(gè)go文件:zplugin.go和zdirectives.go。
core/dnsserver/zdirectives.go將所有插件名字放在一個(gè)數(shù)組中。
codedns 主函數(shù)
codedns.go 首先導(dǎo)入了包"github點(diǎn)抗 /coredns/coredns/core/plugin",此包內(nèi)只有一個(gè)文件zplugin.go,此文件為自動(dòng)生成的,主要導(dǎo)入了所有的插件,執(zhí)行每個(gè)插件的init函數(shù)。
接著執(zhí)行 run.go Run
此文件又引入了包"github點(diǎn)抗 /coredns/coredns/core/dnsserver",其init函數(shù)在 dnsserver/register.go 文件中,如下所示,主要是注冊了serverType
剩下的就是解析參數(shù),解析配置文件后,執(zhí)行caddy.Start。
這里就是根據(jù)配置文件中指定的serverblock,執(zhí)行插件的setup進(jìn)行初始化,創(chuàng)建對(duì)應(yīng)的server,開始監(jiān)聽dns請求
tcp協(xié)議調(diào)用Serve,udp協(xié)議調(diào)用ServePacket
收到DNS請求后,調(diào)用ServeDNS,根據(jù)域名匹配dnsserver,如果沒有匹配不到則使用根dnsserver,然后執(zhí)行dnsserver中配置的插件
以k8s插件為例
參考
//如何寫coredns插件
//coredns源碼分析
//NodeLocal DNSCache
本文名稱:go語言u(píng)dp指定源組播 golang udp服務(wù)
文章源于:http://vcdvsql.cn/article32/ddsidsc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站收錄、企業(yè)網(wǎng)站制作、虛擬主機(jī)、品牌網(wǎng)站制作、網(wǎng)站營銷
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)