• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

      2019-09-23 06:35:54蔣傳杭陳至哲
      智富時(shí)代 2019年8期
      關(guān)鍵詞:輪機(jī)服務(wù)器端模擬器

      蔣傳杭 陳至哲

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

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

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

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

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

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

      在該通訊平臺(tái)中引入心跳機(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ù)器端對(duì)登錄成功的用戶每10s進(jìn)行一次空閑計(jì)數(shù),當(dāng)客戶端向主服務(wù)器端發(fā)送的消息類型為心跳時(shí),證明該客戶端處于在線狀態(tài),空閑計(jì)數(shù)清零,可參與該輪機(jī)模擬器通訊平臺(tái)模擬操作。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      數(shù)據(jù)起始符(2 字節(jié)) + 數(shù)據(jù)長度(4 字節(jié)) +客戶端號(hào)(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)

      本通訊平臺(tái)數(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客戶端號(hào)

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

      6.4時(shí)間戳

      由于UDP通訊協(xié)議不提供擁塞控制,因此在該通訊平臺(tái)中引入了時(shí)間戳[48]。時(shí)間戳是在應(yīng)用層對(duì)數(shù)據(jù)報(bào)進(jìn)行排序,在數(shù)據(jù)包進(jìn)行封包時(shí)封存當(dāng)前時(shí)間,對(duì)數(shù)據(jù)包進(jìn)行一個(gè)時(shí)間上的標(biāo)記,以此作為數(shù)據(jù)發(fā)送順序先后的憑證。而接收端通過兩個(gè)數(shù)據(jù)包中封存的時(shí)間戳標(biāo)記,計(jì)算出這兩組數(shù)據(jù)發(fā)送間隔(或者稱為兩組數(shù)據(jù)包的時(shí)間間隔),以此對(duì)數(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ù)量大,不再對(duì)仿真數(shù)據(jù)進(jìn)行編碼,而是通過在所傳輸文本中的位置確定數(shù)據(jù)的值、類型和含義。所有的值都表示為float型數(shù)據(jù),數(shù)據(jù)包不超過1472個(gè)字節(jié),如果超過1472字節(jié)的話,則需要對(duì)仿真數(shù)據(jù)進(jìn)行分包發(fā)送。

      猜你喜歡
      輪機(jī)服務(wù)器端模擬器
      飛行模擬器大揭秘
      航空世界(2022年3期)2022-06-01 06:13:42
      了不起的安檢模擬器
      盲盒模擬器
      劃船模擬器
      淺析異步通信層的架構(gòu)在ASP.NET 程序中的應(yīng)用
      成功(2018年10期)2018-03-26 02:56:14
      輪機(jī)英語趣味性教學(xué)方法研究
      在Windows中安裝OpenVPN
      高職輪機(jī)專業(yè)高中職銜接專業(yè)英語課程體系的構(gòu)建
      面向?qū)嵅僭u(píng)估的輪機(jī)虛擬拆裝考試系統(tǒng)開發(fā)
      中國航海(2014年1期)2014-05-09 07:54:17
      在職船員“輪機(jī)自動(dòng)化”適任考試有效培訓(xùn)探討
      阿拉尔市| 梁山县| 屏东县| 盈江县| 克东县| 凯里市| 贵港市| 沭阳县| 察雅县| 亳州市| 乌恰县| 永城市| 靖边县| 余江县| 平罗县| 和林格尔县| 东阿县| 漾濞| 盘锦市| 天长市| 昆明市| 涞源县| 砀山县| 宜州市| 镇远县| 佛学| 元朗区| 鲜城| 五常市| 阿拉善左旗| 北宁市| 汽车| 西和县| 罗城| 长顺县| 安岳县| 蓬安县| 阿勒泰市| 中超| 天台县| 开鲁县|