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在线无码精品秘九色APP| 97国产精品视频自在拍| 国产精品免费电影| 亚洲九九视频| 99热亚洲精品6码| 二级特黄绝大片免费视频大片| 呦女亚洲一区精品| 欧美激情视频一区二区三区免费| 国产精品蜜芽在线观看| 一级香蕉视频在线观看| 亚洲女同欧美在线| 国内视频精品| 99热国产这里只有精品无卡顿"| 日本黄色a视频| 国产18页| 亚洲一区二区三区麻豆| 国产成人综合亚洲欧美在| 精品久久人人爽人人玩人人妻| 国产一区成人| 三上悠亚在线精品二区| 国产极品粉嫩小泬免费看| 无码日韩视频| 欧美日韩成人在线观看| 狠狠五月天中文字幕| 又粗又大又爽又紧免费视频| 综合久久久久久久综合网| 国产18在线| 91成人在线观看视频| 国产成人精品一区二区| 九九久久精品国产av片囯产区| 青青操视频在线| 国产精品美女免费视频大全 | 国产美女在线观看| 国产亚洲日韩av在线| 亚洲va精品中文字幕| 国产成人三级在线观看视频| 亚洲日本在线免费观看| 996免费视频国产在线播放| 国产电话自拍伊人| 成年人视频一区二区| 色天堂无毒不卡| 久久精品无码中文字幕| 欧美日韩va| 国产麻豆永久视频| 欧美伦理一区| 国产中文一区二区苍井空| 91精品免费高清在线| 欧美第九页| 国产日韩精品一区在线不卡| 国内毛片视频| 国产在线一区视频| 国产激情影院| 亚洲美女一级毛片| 亚洲国产欧美中日韩成人综合视频| 精品福利一区二区免费视频| 这里只有精品免费视频| 欧美成人日韩| AV在线天堂进入| 亚洲国语自产一区第二页| 成人免费黄色小视频| 美女被操91视频| www.亚洲一区二区三区| 久久精品国产亚洲AV忘忧草18| 欧美一级在线| 日韩无码一二三区| 亚洲AⅤ永久无码精品毛片| 亚洲AⅤ综合在线欧美一区| 亚洲天堂精品在线| 日韩午夜福利在线观看| 丁香五月激情图片| 制服丝袜无码每日更新| 伊人婷婷色香五月综合缴缴情| 欧美日韩中文字幕二区三区| 九九热精品视频在线| 在线观看免费黄色网址| 99久久免费精品特色大片| 国产免费高清无需播放器 | 在线观看无码av免费不卡网站| 动漫精品啪啪一区二区三区| 久久人人妻人人爽人人卡片av| 无码aⅴ精品一区二区三区|