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ā)送。

主站蜘蛛池模板: 一级毛片免费高清视频| 欧美 国产 人人视频| 日韩人妻精品一区| 亚洲一区二区无码视频| 亚洲女同欧美在线| 91在线国内在线播放老师| 色综合久久久久8天国| 亚洲精品国产精品乱码不卞| 国产毛片片精品天天看视频| 午夜视频日本| 国产精品女同一区三区五区| 国产永久在线视频| 国产精品大白天新婚身材| 91精品国产一区| 亚洲中文字幕国产av| 色135综合网| 99久久精品国产麻豆婷婷| 色婷婷成人| 国产永久免费视频m3u8| 国产综合欧美| 国产精品中文免费福利| 91久久国产综合精品女同我| 伊人91视频| 免费久久一级欧美特大黄| 欧美福利在线观看| 亚洲一道AV无码午夜福利| 国产欧美中文字幕| 亚洲欧美日本国产综合在线| 亚洲爱婷婷色69堂| 午夜天堂视频| 日韩av电影一区二区三区四区| 中日韩一区二区三区中文免费视频| 亚洲综合网在线观看| 国产精品区视频中文字幕| 亚洲国产清纯| 日韩欧美国产区| 青青草一区二区免费精品| 中文成人在线视频| 国产欧美另类| 国产成年女人特黄特色毛片免| 九色视频一区| 婷婷伊人五月| 美女亚洲一区| 亚洲成人精品在线| 国产网站一区二区三区| 国产丝袜无码精品| 国产高潮视频在线观看| 亚洲精品无码久久毛片波多野吉| 国产精品久久精品| 91香蕉视频下载网站| 97se亚洲| 亚洲免费福利视频| 国产综合色在线视频播放线视 | 日韩精品专区免费无码aⅴ| 制服丝袜无码每日更新| 亚洲成a人片在线观看88| 国产96在线 | 亚洲精品高清视频| 婷婷久久综合九色综合88| 91外围女在线观看| 国产人妖视频一区在线观看| 欧美国产日韩一区二区三区精品影视| 免费亚洲成人| 成人国产一区二区三区| 国产欧美日韩在线一区| 国产91小视频在线观看| 第九色区aⅴ天堂久久香| 人妻21p大胆| 亚洲成a人片| av天堂最新版在线| 国产无吗一区二区三区在线欢| 亚洲精品午夜天堂网页| 国产丰满大乳无码免费播放| 国产高清国内精品福利| jizz在线免费播放| 国产乱码精品一区二区三区中文| 色网站在线免费观看| 国产91导航| 色网站免费在线观看| 亚洲二区视频| 人人91人人澡人人妻人人爽| 在线观看无码a∨|