国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Unity_如何設(shè)計(jì)網(wǎng)絡(luò)框架2

2022-09-09 14:34 作者:游戲開(kāi)發(fā)RAIN  | 我要投稿


承接上篇

TCP的封包與拆包

上面講解了,應(yīng)用層的數(shù)據(jù)包有可能被拆分成若干”TCP數(shù)據(jù)包”,還有可能兩個(gè)應(yīng)用層的數(shù)據(jù)包連在一起在一個(gè)”TCP數(shù)據(jù)包”中。為了收數(shù)據(jù)的時(shí)候能完整正確的收到應(yīng)用層的數(shù)據(jù)包,我們必須要把兩個(gè)應(yīng)用層的數(shù)據(jù)報(bào)之間做好分隔標(biāo)記,當(dāng)我們收到數(shù)據(jù)以后就可以根據(jù)分隔標(biāo)記來(lái)決定哪些數(shù)據(jù)是哪個(gè)包的。目前有兩種做法:

(1) 大小+數(shù)據(jù)內(nèi)容+校驗(yàn)碼模式;[size][數(shù)據(jù)body][校驗(yàn)], 游戲開(kāi)發(fā)中經(jīng)常會(huì)使用這種方式來(lái)做封包, 收數(shù)據(jù)的時(shí)候,根據(jù)大小來(lái)將數(shù)據(jù)包完整的組合出來(lái)。WebSocket也是采用的這種方式。

(2) 特定的分割符模式: 123456\r\n67890, Html采用特定的分割符號(hào)來(lái)拆分?jǐn)?shù)據(jù)內(nèi)容。

基于http的短連接技術(shù)方案

短連接,前面?zhèn)€講過(guò)的,用完就斷開(kāi)連接,下次要用的時(shí)候再重新的連接。短連接是使用TCP Socket策略,而這種策略最常用的就是http(基于TCP Socket+http超文本傳輸協(xié)議)。

Unity網(wǎng)絡(luò)框架中也要使用http,主要是和服務(wù)器對(duì)接基于http通訊以及資源服務(wù)器的下載等需求。Unity作為客戶端,要使用http,都已經(jīng)封裝好了UnityWebRequest,同時(shí)UnityWebRequest是多線程模式,可以同時(shí)并發(fā)N個(gè)請(qǐng)求。

Unity?網(wǎng)絡(luò)框架設(shè)計(jì)與實(shí)現(xiàn)原理

鋪墊了這么多,我們直接來(lái)上Unity網(wǎng)絡(luò)框架的架構(gòu)設(shè)計(jì)結(jié)構(gòu)圖,供大家參考。

這里接收數(shù)據(jù)的時(shí)候,采用多線程來(lái)做,收到數(shù)據(jù)后,進(jìn)行拆包與反序列化,得到數(shù)據(jù)對(duì)象后,放事件隊(duì)列,游戲主線程從事件隊(duì)列里面獲取網(wǎng)絡(luò)事件,然后進(jìn)行處理。發(fā)送數(shù)據(jù)出去的時(shí)候,我們?cè)谟螒蛑骶€程調(diào)用異步的網(wǎng)絡(luò)Send函數(shù),避免IO阻塞。注意好這些點(diǎn),就可以設(shè)計(jì)出一個(gè)很好的網(wǎng)絡(luò)框架。

Unity_如何設(shè)計(jì)網(wǎng)絡(luò)框架2的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
阳城县| 资讯 | 冕宁县| 澄江县| 上林县| 托克逊县| 商洛市| 静宁县| 聂拉木县| 道孚县| 陆河县| 利津县| 宁阳县| 铜陵市| 馆陶县| 自贡市| 光泽县| 弋阳县| 元氏县| 英德市| 富锦市| 汉阴县| 海兴县| 通道| 信宜市| 延寿县| 玉门市| 荆州市| 镶黄旗| 象州县| 昌黎县| 安新县| 安阳市| 静海县| 威海市| 江达县| 石家庄市| 新郑市| 石泉县| 安西县| 聂荣县|