国产一级簧片-国产一极毛片-国产一国产a一级毛片-国产一国产一有一级毛片-91三级视频-91大学生视频

藍鷗旗下品牌:鷗課學院
全國咨詢電話:13152008057
您的位置: 首頁 > 技術文章 > 【原創】VR技術基于ProtoBuf協議實現網絡傳輸

【原創】VR技術基于ProtoBuf協議實現網絡傳輸

2017-07-13 藍鷗
5754人 瀏覽:

本文由藍鷗VR/AR/游戲學科高級講師原創,全篇干貨,深度好文。

ProtoBuf是Google公司推出的一種二進制序列化工具,適用于數據的網絡傳輸。基于Socket實現時時通信,關于數據粘包的編碼和解碼處理是必不可少的。

Unity版本:5.3

使用語言:C# 

一、Unity中使用ProtoBuf

實現功能

1.基于ProtoBuf序列化對象

2.使用Socket實現時時通信

3.數據包的編碼和解碼

導入DLL到Unity中>>>創建網絡傳輸的模型類

QQ截圖20170711110737.jpg

在Unity中添加測試腳本,介紹ProtoBuf工具的使用。中間用到了流這個概念,對于此概念不熟悉的同學先去我的簡書學習。

2.jpg

二、Unity中使用Socket實現時時通信

通信應該實現的功能:

1.服務器可以時時監聽多個客戶端

2.服務器可以時時監聽某一個客戶端消息

3.服務器可以時時給某一個客戶端發消息

首先我們需要定義一個客戶端對象

3.jpg

然后實現我們的服務器代碼

4.jpg

在Unity中開啟服務器,并使用C#控制臺模擬客戶端連接、發送消息操作。測試OK,Unity中可以時時監聽到消息。

5.jpg

三、數據包的編碼和解碼

首先,舉個例子,這個月信用卡被媳婦刷爆了,面對房貸車貸的壓力,我只能選擇分期付款。

那么OK了,現在我想問一下,當服務器向客戶端發送的數據過大時怎么辦呢?

當服務器需要向客戶端發送一條很長的數據,也會“分期付款!”,服務器會把一條很長的數據分成若干條小數據,多次發送給客戶端。

可是,這樣就又有另外一個問題,客戶端接受到多條數據之后如何解析?

這里其實就是客戶端的解碼。server發數據一般采用“長度+內容”的格式,Client接收到數據之后,先提取出長度來,然后根據長度判斷內容是否發送完畢。

再次重申,用戶在發送序列化好的消息的前,需要先編碼后再發送消息;用戶在接受消息后,需要解碼之后再解析數據(反序列化)。

6.jpg

  1. 廣告1
  2. 廣告2
  3. 廣告3
  4. 廣告4
主站蜘蛛池模板: 成人看片免费 | 中文字幕视频网站 | 99午夜高清在线视频在观看 | 免费一级毛片麻豆精品 | 久久久久一级片 | 欧美日中文字幕 | 在线观看国产情趣免费视频 | 日本一线a视频免费观看 | 久热中文字幕在线精品免费 | 色一情一乱一乱91av | 国产成人在线视频免费观看 | aaa毛片手机在线现看 | 国产免费人成在线看视频 | 日韩精品午夜视频一区二区三区 | 日韩 国产 欧美视频一区二区三区 | 色综合久久88色综合天天提莫 | 欧美一级日韩在线观看 | 高清波多野结衣一区二区三区 | 欧美特级特黄a大片免费 | 爽爽日本在线视频免费 | 日韩在线资源 | 欧美日韩国产在线观看一区二区三区 | 久草黄视频 | 亚洲aⅴ | 亚洲一区二区三区不卡视频 | 亚洲三级在线看 | 亚洲国产精品日韩在线观看 | 美女精品永久福利在线 | 欧美日韩性视频一区二区三区 | 欧美h版成版在线观看 | 欧美亚洲国产精品久久久久 | se就是色94欧美setu | 国产精品成人免费视频不卡 | 欧美在线播放视频 | 久久久久久88色愉愉 | 久久在线 | 一级毛片美国aaj毛片 | 经典香港一级a毛片免费看 精品400部自拍视频在线播放 | 欧美成人乱弄视频 | 久草一级片 | 午夜性福|