
投資金額:1-3萬(wàn)
企業(yè)名稱:河南藍(lán)鷗科技有限公司
本文由藍(lán)鷗鄭州Unity培訓(xùn)游戲?qū)W科高級(jí)講師原創(chuàng),全篇干貨,深度好文。
藍(lán)鷗http://hn.lanou3g.com/專注程序員Java培訓(xùn)、PHP培訓(xùn)、大數(shù)據(jù)培訓(xùn)、HTML5培訓(xùn)、Unity3D培訓(xùn)、Web安全攻防培訓(xùn)、VR/AR培訓(xùn),選擇藍(lán)鷗,不止高薪更是高起點(diǎn)。
現(xiàn)在可免費(fèi)申請(qǐng)藍(lán)鷗鄭州相關(guān)開發(fā)課程,試聽期間不收取任何費(fèi)用。
報(bào)名點(diǎn)這里
【詳情咨詢:電話:(微信) QQ:2290909800】
ProtoBuf是Google公司推出的一種二進(jìn)制序列化工具,適用于數(shù)據(jù)的網(wǎng)絡(luò)傳輸?;赟ocket實(shí)現(xiàn)時(shí)時(shí)通信,關(guān)于數(shù)據(jù)粘包的編碼和解碼處理是必不可少的。
Unity版本:5.3
使用語(yǔ)言:C#
一、Unity中使用ProtoBuf實(shí)現(xiàn)功能
1.基于ProtoBuf序列化對(duì)象
2.使用Socket實(shí)現(xiàn)時(shí)時(shí)通信3.數(shù)據(jù)包的編碼和解碼導(dǎo)入DLL到Unity中>>>創(chuàng)建網(wǎng)絡(luò)傳輸?shù)哪P皖?
在Unity中添加測(cè)試腳本,介紹ProtoBuf工具的使用。中間用到了流這個(gè)概念,對(duì)于此概念不熟悉的同學(xué)先去學(xué)習(xí)。
二、Unity中使用Socket實(shí)現(xiàn)時(shí)時(shí)通信
通信應(yīng)該實(shí)現(xiàn)的功能:
1.服務(wù)器可以時(shí)時(shí)監(jiān)聽多個(gè)客戶端
2.服務(wù)器可以時(shí)時(shí)監(jiān)聽某一個(gè)客戶端消息
3.服務(wù)器可以時(shí)時(shí)給某一個(gè)客戶端發(fā)消息
首先我們需要定義一個(gè)客戶端對(duì)象
然后實(shí)現(xiàn)我們的服務(wù)器代碼
在Unity中開啟服務(wù)器,并使用C#控制臺(tái)模擬客戶端連接、發(fā)送消息操作。測(cè)試OK,Unity中可以時(shí)時(shí)監(jiān)聽到消息。
三、數(shù)據(jù)包的編碼和解碼
首先,舉個(gè)例子,這個(gè)月信用卡被媳婦刷爆了,面對(duì)房貸車貸的壓力,我只能選擇分期付款。
那么OK了,現(xiàn)在我想問一下,當(dāng)服務(wù)器向客戶端發(fā)送的數(shù)據(jù)過大時(shí)怎么辦呢?
當(dāng)服務(wù)器需要向客戶端發(fā)送一條很長(zhǎng)的數(shù)據(jù),也會(huì)“分期付款!”,服務(wù)器會(huì)把一條很長(zhǎng)的數(shù)據(jù)分成若干條小數(shù)據(jù),多次發(fā)送給客戶端。
可是,這樣就又有另外一個(gè)問題,客戶端接受到多條數(shù)據(jù)之后如何解析?
這里其實(shí)就是客戶端的解碼。server發(fā)數(shù)據(jù)一般采用“長(zhǎng)度+內(nèi)容”的格式,Client接收到數(shù)據(jù)之后,先提取出長(zhǎng)度來(lái),然后根據(jù)長(zhǎng)度判斷內(nèi)容是否發(fā)送完畢。
再次重申,用戶在發(fā)送序列化好的消息的前,需要先編碼后再發(fā)送消息;用戶在接受消息后,需要解碼之后再解析數(shù)據(jù)(反序列化)。
請(qǐng)?zhí)顚懥粞曰蚋鶕?jù)意向選擇下列快捷留言
負(fù)責(zé)聲明:以上所展示的信息由會(huì)員自行提供,內(nèi)容真實(shí)性,準(zhǔn)確性和合法性由發(fā)布會(huì)與負(fù)責(zé)。本網(wǎng)對(duì)此不承擔(dān)任何責(zé)任。
友情提醒:為規(guī)避投資風(fēng)險(xiǎn),建議您在投資前務(wù)必多咨詢,多考察,降低投資風(fēng)險(xiǎn)。