999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種網(wǎng)絡(luò)版輪機(jī)模擬器系統(tǒng)通訊平臺設(shè)計(jì)

2019-09-23 06:35:54蔣傳杭陳至哲
智富時(shí)代 2019年8期

蔣傳杭 陳至哲

采用C#編程語言為開發(fā)語言和面向?qū)ο笤O(shè)計(jì)方法,利用UML建模語言,結(jié)合線程池、UDP通訊協(xié)議等技術(shù)基礎(chǔ),開發(fā)出一種適用于網(wǎng)絡(luò)版輪機(jī)模擬器的通訊平臺。主要完成即時(shí)通訊模塊、數(shù)據(jù)存儲模塊和操作顯示模塊等,通過各模塊之間協(xié)作來實(shí)現(xiàn)通訊平臺的功能需求。整體架構(gòu)采用C/S結(jié)構(gòu),分別對服務(wù)器端、客戶端和數(shù)據(jù)庫等進(jìn)行分模塊設(shè)計(jì),客戶端之間采用了點(diǎn)對點(diǎn)通訊架構(gòu),利用UDP通訊協(xié)議,實(shí)現(xiàn)了用戶模型啟動、通訊和操作提示等功能,完成整個(gè)網(wǎng)絡(luò)版輪機(jī)模擬器通訊平臺的開發(fā)。

該系統(tǒng)主要包括四個(gè)部分:客戶端、主服務(wù)器、組服務(wù)器和數(shù)據(jù)庫。當(dāng)一個(gè)操作組滿足所需操作人數(shù)時(shí),同組成員可進(jìn)行分角色輪機(jī)系統(tǒng)模擬操作,同組客戶端之間通過組服務(wù)器進(jìn)行通訊,不再通過主服務(wù)器,其數(shù)據(jù)庫負(fù)責(zé)數(shù)據(jù)的存儲、訪問和保證數(shù)據(jù)的完整性約束等,各模塊之間均采用工業(yè)以太網(wǎng)UDP通訊協(xié),來完成數(shù)據(jù)的交互。

1、整體架構(gòu)設(shè)計(jì)

該平臺添加了組服務(wù)器與具體的輪機(jī)系統(tǒng)的模型,主服務(wù)器主要負(fù)責(zé)團(tuán)隊(duì)總數(shù)的管理和為客戶端分組等功能,當(dāng)人數(shù)滿足條件時(shí)組服務(wù)器運(yùn)行,客戶端可以直接對輪機(jī)系統(tǒng)進(jìn)行模擬操作,組服務(wù)器用來實(shí)現(xiàn)模型解算、訪問數(shù)據(jù)庫等功能。而客戶端之間的數(shù)據(jù)交互和通訊采用都點(diǎn)對點(diǎn)結(jié)構(gòu)。

服務(wù)器端先行啟動,啟動的同時(shí)開啟端口監(jiān)聽客戶端是否接入。客戶端再行進(jìn)行用戶信息登錄等相關(guān)操作,服務(wù)器段進(jìn)行驗(yàn)證,認(rèn)證成功后允許用戶進(jìn)入通訊平臺,之后服務(wù)器端進(jìn)行角色分配和初始化操作,進(jìn)行模擬仿真訓(xùn)練,客戶端之間可實(shí)現(xiàn)實(shí)時(shí)的信息和數(shù)據(jù)交互。

2、客戶端設(shè)計(jì)

客戶端運(yùn)用.Net平臺,采用C#編程語言,通過Visual Studio2010中Windows窗體應(yīng)用程序設(shè)計(jì)操作界面,主要采用Button、Label和Text Box等基礎(chǔ)控件。

在該通訊平臺中引入心跳機(jī)制,首先主服務(wù)器端負(fù)責(zé)監(jiān)控客戶端是否登錄成功,進(jìn)入局域網(wǎng),當(dāng)客戶端成功登錄進(jìn)來,主服務(wù)器創(chuàng)建一個(gè)Client,客戶端連接成功后發(fā)送登錄信息,服務(wù)器端監(jiān)聽客戶端是否有消息傳出,有消息時(shí),判斷該消息類型,如果是新客戶端的登錄信息,即設(shè)置用戶ID,顯示該用戶在線。服務(wù)器端對登錄成功的用戶每10s進(jìn)行一次空閑計(jì)數(shù),當(dāng)客戶端向主服務(wù)器端發(fā)送的消息類型為心跳時(shí),證明該客戶端處于在線狀態(tài),空閑計(jì)數(shù)清零,可參與該輪機(jī)模擬器通訊平臺模擬操作。

服務(wù)器端對客戶端每10s進(jìn)行一次空間計(jì)數(shù),逐次加一,當(dāng)空間計(jì)數(shù)為3000時(shí)(代表該客戶端已30秒沒有心跳),服務(wù)器自動斷開該Client,判定該用戶處于離線狀態(tài),不可參與該輪機(jī)模擬器通訊平臺模擬操作,需重新登錄。

3、服務(wù)器端流程

主服務(wù)器端引進(jìn)一個(gè)監(jiān)聽機(jī)制,首先平臺開啟后進(jìn)行初始化,通過創(chuàng)建一個(gè)UDP監(jiān)聽線程,負(fù)責(zé)監(jiān)控是否有客戶端接入進(jìn)該通訊平臺,一旦客戶端可以構(gòu)成一組(四個(gè)客戶端為一組),形成一個(gè)操作組。

通過創(chuàng)建一個(gè)控制臺程序作為主服務(wù)器,實(shí)現(xiàn)與多個(gè)客戶端程序通訊,主線程的socket綁定在一個(gè)固定端口,用于監(jiān)聽客戶端的信息,每當(dāng)一個(gè)客戶端啟動后,會發(fā)送一個(gè)連接請求,Server端就會自動創(chuàng)建一個(gè)新的線程,用來實(shí)現(xiàn)服務(wù)器端于客戶端之間的通訊,當(dāng)客戶端退出程序時(shí),結(jié)束該線程。

監(jiān)聽機(jī)制的引用是利用多線程技術(shù)。

4、數(shù)據(jù)庫設(shè)計(jì)

此通訊平臺的數(shù)據(jù)庫使用SQL Server實(shí)現(xiàn)。

5、UDP通訊協(xié)議設(shè)計(jì)

該輪機(jī)模擬器模型各個(gè)模塊之間均采用UDP通訊協(xié)議來進(jìn)行數(shù)據(jù)和信息的交互,需對UDP協(xié)議進(jìn)行具體詳細(xì)的制定。

客戶端與服務(wù)器端的信息主要分為兩類:

A.客戶端指令與服務(wù)器端應(yīng)答

B.仿真模擬數(shù)據(jù)分發(fā)(具體包括:1.客戶端與服務(wù)器之間采用單播 2.服務(wù)器和客戶端之間采用組播3.客戶端之間采用點(diǎn)對點(diǎn)通訊)

6、以太網(wǎng)楨基本格式

客戶端指令和服務(wù)器應(yīng)答信息數(shù)據(jù)包基本格式:

數(shù)據(jù)起始符(2 字節(jié)) + 數(shù)據(jù)長度(4字節(jié)) +客戶端號(4 字節(jié)) +信息傳輸文本 (0-500 字節(jié)) + 結(jié)束符(2 字節(jié))

仿真操作數(shù)據(jù)包基本格式:

數(shù)據(jù)起始符(2 字節(jié)) + 數(shù)據(jù)長度(4 字節(jié)) +客戶端號(4 字節(jié)) +數(shù)據(jù)傳輸文本 (0-500 字節(jié)) + 結(jié)束符(2 字節(jié))

仿真數(shù)據(jù)數(shù)據(jù)包基本格式:

數(shù)據(jù)起始符(2 字節(jié)) + 數(shù)據(jù)長度(4 字節(jié)) +時(shí)間戳(4字節(jié))+數(shù)據(jù)傳輸文本 (0-500 字節(jié)) + 結(jié)束符(2 字節(jié))

6.1數(shù)據(jù)起始符(21H)

本通訊平臺數(shù)據(jù)起始符定義為16 進(jìn)制單字節(jié)數(shù)(21),即每組數(shù)據(jù)包均以21(H)為起始字符,便于數(shù)據(jù)包的報(bào)頭校驗(yàn)。各個(gè)模塊之間均采用不同的UDP數(shù)據(jù)包格式來完成信息與數(shù)據(jù)的交互。

ASCII碼:!。

6.2數(shù)據(jù)長度

所有數(shù)據(jù),包括起始字符和結(jié)束字符,字節(jié)長度為2字節(jié)。

6.3客戶端號

登錄系統(tǒng)客戶端的編號。定義為整型,字節(jié)長度為4字節(jié)。

6.4時(shí)間戳

由于UDP通訊協(xié)議不提供擁塞控制,因此在該通訊平臺中引入了時(shí)間戳[48]。時(shí)間戳是在應(yīng)用層對數(shù)據(jù)報(bào)進(jìn)行排序,在數(shù)據(jù)包進(jìn)行封包時(shí)封存當(dāng)前時(shí)間,對數(shù)據(jù)包進(jìn)行一個(gè)時(shí)間上的標(biāo)記,以此作為數(shù)據(jù)發(fā)送順序先后的憑證。而接收端通過兩個(gè)數(shù)據(jù)包中封存的時(shí)間戳標(biāo)記,計(jì)算出這兩組數(shù)據(jù)發(fā)送間隔(或者稱為兩組數(shù)據(jù)包的時(shí)間間隔),以此對數(shù)據(jù)包的傳輸效率進(jìn)行控制[49],通過將時(shí)間戳插入數(shù)據(jù)包中完成這一功能。

在該系統(tǒng)協(xié)議中,用int32型數(shù)據(jù)表示時(shí)間戳。時(shí)間戳從0開始,每次傳輸發(fā)生時(shí),時(shí)間戳加1。客戶端驗(yàn)證時(shí)間戳,如小于原時(shí)間戳,則該數(shù)據(jù)包應(yīng)丟棄。

6.5結(jié)束符

數(shù)據(jù)結(jié)束符定義為16進(jìn)制單字節(jié)數(shù)(0DH),即每組數(shù)據(jù)包均以0D(H)為結(jié)束字符,便于數(shù)據(jù)包的尾校驗(yàn)。

十進(jìn)制:13。

ASCII碼:回車。

當(dāng)仿真數(shù)據(jù)量大,不再對仿真數(shù)據(jù)進(jìn)行編碼,而是通過在所傳輸文本中的位置確定數(shù)據(jù)的值、類型和含義。所有的值都表示為float型數(shù)據(jù),數(shù)據(jù)包不超過1472個(gè)字節(jié),如果超過1472字節(jié)的話,則需要對仿真數(shù)據(jù)進(jìn)行分包發(fā)送。

主站蜘蛛池模板: 精品视频一区在线观看| 亚洲无码A视频在线| 国产在线第二页| 亚洲另类色| 中文成人在线| 97视频免费在线观看| 欧美日韩一区二区三区四区在线观看| 免费高清a毛片| 国产欧美日韩精品综合在线| 色偷偷一区| 亚洲第一成年人网站| 久久大香香蕉国产免费网站| 77777亚洲午夜久久多人| 欧美亚洲另类在线观看| 国产成人精品视频一区二区电影| 亚洲天堂高清| 国产精品999在线| 欧美成人午夜视频免看| 午夜久久影院| 国产在线一二三区| 日韩午夜片| 欧美一级在线播放| 亚洲国产精品无码AV| 一本无码在线观看| 久久综合伊人77777| 九九香蕉视频| 色AV色 综合网站| yjizz视频最新网站在线| 人妻免费无码不卡视频| 国产女人在线视频| 亚洲精品va| 国产成人艳妇AA视频在线| 欧美激情视频二区| 亚洲无码日韩一区| 亚洲天堂网2014| 国产专区综合另类日韩一区| 好久久免费视频高清| 狼友视频国产精品首页| 一级毛片在线免费视频| 91在线国内在线播放老师| 全部无卡免费的毛片在线看| 在线观看欧美精品二区| 久久99国产综合精品1| 国产欧美视频在线| 久久久久人妻一区精品| 国产精品久久久久久久久| 国产综合精品一区二区| 国产精品自在在线午夜| 丰满人妻中出白浆| 青青草原国产| 天天操精品| 中文字幕1区2区| 亚洲第一香蕉视频| 日本成人精品视频| 欧美精品v欧洲精品| 国产又色又刺激高潮免费看| 18禁色诱爆乳网站| 国产视频大全| 毛片在线播放网址| 91小视频在线观看免费版高清| 亚洲综合久久一本伊一区| 久久国产黑丝袜视频| 日本久久久久久免费网络| 亚洲永久视频| 国产精品成人第一区| 人妻精品久久无码区| 亚洲国产成人精品一二区 | 国产激情影院| 日韩精品成人网页视频在线| 亚洲区第一页| 丁香综合在线| 国产精品精品视频| 日韩高清无码免费| 国产久草视频| 欧美yw精品日本国产精品| 亚洲精品视频在线观看视频| 日韩麻豆小视频| 波多野结衣无码视频在线观看| 欧美怡红院视频一区二区三区| 久久伊人久久亚洲综合| 精品国产www| 国产欧美日韩综合一区在线播放|