小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

實(shí)用的Unity3D基于TCP/IP協(xié)議的網(wǎng)絡(luò)通信框架

 kiki的號(hào) 2017-06-01

大家好,我是FoldCc,今天給大家分享一下自己設(shè)計(jì)并且經(jīng)常用到的一個(gè)網(wǎng)絡(luò)通信框架---客戶端

經(jīng)過(guò)自己的實(shí)踐,發(fā)現(xiàn)這套框架在應(yīng)對(duì)一些中小型手游還是比較穩(wěn)定使用的,整體結(jié)構(gòu)也比較簡(jiǎn)單,但是特別實(shí)用,唯一要注意一點(diǎn)的是在開發(fā)網(wǎng)絡(luò)通信時(shí),一定要注意多線程爭(zhēng)用資源的問(wèn)題。

下面我為大家詳細(xì)介紹一下:

首先最核心的是Socket連接器 它的功能主要有4個(gè)

》向服務(wù)器發(fā)起連接請(qǐng)求

》一個(gè)能夠返回已經(jīng)連接服務(wù)器的Socket的方法(僅用于之后開啟接收和發(fā)送消息線程)

》判斷當(dāng)前是否連接正常

》斷開服務(wù)器連接

當(dāng)連接器連接成功后會(huì)自動(dòng)創(chuàng)建兩個(gè)線程,分別用來(lái)接收和發(fā)送,(至于為什么要單獨(dú)分開成兩個(gè),是因?yàn)樵趯?shí)際應(yīng)用中一個(gè)線程處理這兩個(gè)效率上低,容易出問(wèn)題,并且理論上來(lái)說(shuō)一個(gè)線程同時(shí)處理發(fā)送和接收也有點(diǎn)不合理)為了防止接收和發(fā)送線程在處理消息可能出現(xiàn)效率跟不上的問(wèn)題,我設(shè)置了兩個(gè)消息隊(duì)列,分別用來(lái)裝發(fā)送的消息和接收的消息,其中接收的消息通過(guò)消息分類器分類到不同隊(duì)列中,這里需要注意的一點(diǎn)是,接收消息需要做粘包處理!說(shuō)通俗一點(diǎn)就是判斷消息的完整性,這里我為所有消息都加了一個(gè)特定的消息頭 和消息尾 用來(lái)判斷消息的完整性,至于消息頭和消息尾的內(nèi)容由自己設(shè)計(jì),最好是不常使用的一些特殊字符,防止遇到和內(nèi)容相同的情況。

兩個(gè)線程則只負(fù)責(zé)將收到的消息往隊(duì)列中存儲(chǔ)以及將發(fā)送隊(duì)列的消息按順序發(fā)送就行了,消息分類會(huì)單獨(dú)去對(duì)消息進(jìn)行分類并存放到對(duì)應(yīng)隊(duì)列中。

下面是這一套框架的流程圖,如果有用大家?guī)兔D(zhuǎn)載哦!大笑

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多