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

Linux環境下基于Socket的數據傳輸軟件設計

2020-11-23 12:02:12王璇王亮楊玻中國航空工業集團公司西安航空計算技術研究所
數碼世界 2020年11期
關鍵詞:網絡通信設備

王璇 王亮 楊玻 中國航空工業集團公司西安航空計算技術研究所

引言

隨著網絡通信在航空領域使用日趨廣泛,我們對于高可靠的網絡通信要求也是越來越高。因此操作系統中網絡的支持程度就顯得尤為重要。在現行眾多的操作系統中,Linux支持多用戶、多進程、多線程,實時性好,功能強大且穩定。在通信和網絡功能方面,Linux優于其它操作系統。其它操作系統不包含如此緊密的內核結合在一起的聯接網絡的能力,也沒有內置這些聯網特性的靈活性。而Linux為用戶提供了完善的、強大的網絡功能。

Socket作為UNIX的進程通信機制,通常也稱作“套接字”,用于描述IP地址和端口號,是一個通信鏈的句柄,可以用來實現不同虛擬機或不同計算機之間的通信。套接字通過調用系統提供的庫函數實現數據傳輸,不需要過多了解底層的細節,從而完成設備和網絡之間的通信。

1 Socket編程過程

Socket編程過程分為服務器端和客戶端編程,通信過程如圖1所示。

圖1 服務器端和客戶端Socket通信過程

Linux環境下的Socket編程是通過套接字的相關接口來實現的,應用程序可以通過Socket接口來收發數據。通信過程如下:

首先創建套接字socket(),然后服務器端綁定套接字bind(),即將本地主機的IP地址、端口號與創建的套接字相綁定。綁定完成后,服務器端監聽listen(),等待客戶端連接。客戶端發送連接請求connect()。客戶端的請求會觸發服務器端和客戶端底層的三次握手,服務器端接受連接accept()。成功建立連接后,雙方就可以進行數據收發了。一般使用send()發送數據,使用recv()來接收數據。以上,Socket就連接了客戶端和服務器端的應用程序。在雙方不需要通信時,可以使用close()關閉連接。

2 數據傳輸軟件設計

上面介紹了Socket的網絡通信原理,現在我們就可以對數據傳輸軟件進行設計了。這是一個運行在Linux操作系統上基于Socket的客戶端程序,我們主要從軟件概述、Linux定時器使用、連接保持模塊、數據發送模塊和數據接收模塊等5個方面進行闡述。

2.1 軟件概述

本軟件運行在一個裝有Ubuntu Linux操作系統的航空設備上。該設備通過網線與數據庫服務器相連接,并將設備和服務器的IP地址設置在同一網段中。在客戶端與服務器端建立連接后,客戶端主動向服務器端請求上層應用軟件所需要的數據,服務器端接收到指令后找到相應數據返回給客戶端,供上層應用使用。由于上層應用隨時可能下發數據傳輸請求,故客戶端應周期性判斷與服務器端的連接狀態,保證在上層應用下發命令時客戶端和服務器端是通信正常的。

2.2 Linux定時器使用

Linux系統提供了毫秒級定時器itimerval,它是一個有兩個成員變量it_value和it_interval的結構體。it_value指定時器安裝后首次啟動的初始值,it_interval指定時器重啟動的間隔值。本軟件將它們都設置為1秒,即定時器啟動后將會以1秒為間隔周期觸發。接著使用setitimer()函數使方才設置的定時器生效,并使用signal()將中斷處理函數掛接入該定時器。這樣,系統每秒就能運行一次中斷處理函數,它包含連接保持模塊、數據發送模塊和數據接收模塊。

2.3 連接保持模塊

客戶端在Socket初始化完成后,會周期調用connect()與服務器端嘗試建立連接,如果建立連接成功,則會給服務器端發送連接保持命令字,如果在超時時間內服務器返回了相應命令字,說明連接保持。這時,上層應用就可以下發傳輸數據的命令了;如果連續三個周期服務器沒有在超時時間內回應命令字,則判定服務器下線,斷開并關閉其連接。下個周期繼續調用connect()嘗試與其建立連接。

2.4 數據發送模塊

在連接保持的狀態下,當上層應用下發數據傳輸命令,客戶端就可以使用send()函數來發送數據了。如果出現了小于發送長度的情況,就代表著數據有部分沒有發送完成,只是發送了一部分,這時就需要再次發送來完成數據發送。

2.5 數據接收模塊

當服務器端接收到客戶端所請求的數據時,服務器端就會回復數據,即客戶端使用recv()接收數據。由于服務器端不一定會立即回復數據,所以要設置超時時間。在超時時間內,客戶端接收到了足夠數量的數據,并進行累加和校驗,校驗成功,那么傳遞給上層應用;校驗失敗,則通知服務器端重傳。如果服務器端回復超時,則也需要服務器端重傳。

3 運行結果

程序采用C語言編寫,編譯Linux客戶端時需要執行如下編譯命令:gcc -o client client.c,然后運行此執行文件,命令如下:

在Linux系統下執行完上述命令后,設備就和數據庫服務器建立連接了。設備先向服務器發送請求數據命令,再接收服務器發來的數據,是典型的“主從模式”一發一收。

4 小結

Linux網絡具有較高的安全性,可以進行網絡資源的共享,完成網絡通信。它還包含著很多網絡協議,擁有開放的源代碼,我們可以利用Linux網絡進行基于Socket的網絡通信技術的開發。Socket作為其中的接口起著舉足輕重的作用,連接起了網絡設備和應用程序與下層協定,從而完成設備和網絡之間的網路通信。

猜你喜歡
網絡通信設備
諧響應分析在設備減振中的應用
海上軍用網絡通信的安全控制技術
基于網絡通信的智能照明系統設計
電子制作(2019年15期)2019-08-27 01:11:48
基于VB6.0+Access2010開發的設備管理信息系統
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
計算機網絡通信常見問題與技術發展研究
電子制作(2018年10期)2018-08-04 03:24:46
網絡通信中信息隱藏技術的應用
基于網絡通信的校園智能音箱設計
電子制作(2018年1期)2018-04-04 01:48:30
談計算機網絡通信常見問題及技術發展
電子制作(2017年17期)2017-12-18 06:41:06
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
主站蜘蛛池模板: 亚洲精品国偷自产在线91正片| 国产精品乱偷免费视频| 亚洲AV无码一区二区三区牲色| 国产成人精品高清不卡在线 | 国产高清无码麻豆精品| 成人免费午夜视频| 成年A级毛片| 日韩在线成年视频人网站观看| 日韩黄色在线| a毛片在线| 精品欧美一区二区三区久久久| 精品一区二区三区视频免费观看| 亚洲精品欧美重口| 欧洲日本亚洲中文字幕| 亚洲中文字幕久久精品无码一区| 亚洲国产综合精品中文第一| 色135综合网| 久久久久国产精品熟女影院| 九九这里只有精品视频| 中日无码在线观看| 国产黄在线免费观看| 欧美久久网| 又爽又大又光又色的午夜视频| 日韩第八页| 国产91小视频在线观看| 激情影院内射美女| 精品夜恋影院亚洲欧洲| 激情综合图区| 欧美劲爆第一页| 日本爱爱精品一区二区| 国产自产视频一区二区三区| 国产在线一区视频| 亚洲黄色高清| 亚洲精品国产首次亮相| 在线看片免费人成视久网下载| 国产91熟女高潮一区二区| www.国产福利| 99热这里只有成人精品国产| 亚洲AV无码乱码在线观看代蜜桃| 波多野结衣中文字幕一区二区| 91精品国产无线乱码在线| 色丁丁毛片在线观看| 成人在线不卡| 91久久国产综合精品女同我| 一级毛片免费观看不卡视频| 97视频精品全国在线观看| 91区国产福利在线观看午夜 | 精品久久久久无码| 国产黄色爱视频| 婷婷综合亚洲| 日韩在线中文| 国产v精品成人免费视频71pao | 波多野结衣无码AV在线| aa级毛片毛片免费观看久| 亚洲人成网站观看在线观看| AV片亚洲国产男人的天堂| 99国产精品免费观看视频| 狠狠色噜噜狠狠狠狠色综合久| 成人午夜视频网站| 四虎成人免费毛片| 欧美亚洲欧美| 婷婷亚洲视频| 成人免费午夜视频| 狠狠综合久久| 国产经典三级在线| 欧美激情综合一区二区| 亚洲日韩高清在线亚洲专区| 欧美一级在线| 日韩毛片视频| 久久久久久高潮白浆| 亚洲AⅤ综合在线欧美一区| 国产97区一区二区三区无码| 青草精品视频| 大香伊人久久| 777国产精品永久免费观看| 久草网视频在线| 日韩精品一区二区深田咏美| 亚洲va在线∨a天堂va欧美va| 色悠久久久| 国产乱视频网站| 国产成人1024精品下载| 97国产一区二区精品久久呦|