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
主站蜘蛛池模板: 热99re99首页精品亚洲五月天| 青青草国产精品久久久久| 亚洲精品777| 日韩av高清无码一区二区三区| 亚洲av无码人妻| 人妻无码AⅤ中文字| 色婷婷综合在线| 国产在线高清一级毛片| 国产精品尤物在线| 毛片在线播放网址| 国模私拍一区二区| 美女视频黄又黄又免费高清| 大陆精大陆国产国语精品1024| 欧美久久网| 精品视频一区在线观看| 9966国产精品视频| 日本成人在线不卡视频| 亚洲欧洲日韩综合| 国产一级片网址| 极品国产一区二区三区| 不卡无码h在线观看| 中文字幕 日韩 欧美| 美女亚洲一区| 欧美日韩专区| 精品小视频在线观看| 拍国产真实乱人偷精品| 国产成人无码AV在线播放动漫| v天堂中文在线| 五月丁香伊人啪啪手机免费观看| 日韩福利在线视频| 91外围女在线观看| 一本一本大道香蕉久在线播放| 777国产精品永久免费观看| 免费观看三级毛片| 精品人妻无码中字系列| 亚洲欧美精品在线| 国产精品香蕉在线| 国产在线视频福利资源站| 婷婷色一二三区波多野衣| 91在线播放免费不卡无毒| 欧美第九页| 国产自产视频一区二区三区| 亚洲天堂福利视频| 国产精品欧美在线观看| 久久亚洲国产最新网站| h视频在线观看网站| 亚洲综合片| 爱爱影院18禁免费| 毛片a级毛片免费观看免下载| 无码综合天天久久综合网| 91久久国产综合精品| 无码一区18禁| 亚洲精品无码AV电影在线播放| 99热在线只有精品| 亚洲av综合网| 操美女免费网站| 精品视频一区二区观看| 国产呦视频免费视频在线观看 | 少妇精品在线| 一区二区三区成人| 国产精品亚洲五月天高清| 精品无码视频在线观看| 日本草草视频在线观看| 亚洲欧美日韩中文字幕一区二区三区| 国内丰满少妇猛烈精品播| 国产免费好大好硬视频| 国产精品午夜电影| 91原创视频在线| 老色鬼欧美精品| 亚洲第一色网站| 67194亚洲无码| 人禽伦免费交视频网页播放| 欧美精品在线看| 天天综合色天天综合网| 国产精品私拍在线爆乳| 99视频精品在线观看| 国产成人亚洲无码淙合青草| 免费高清a毛片| 制服丝袜亚洲| 91福利免费| 一本久道久久综合多人| 中文字幕亚洲精品2页|