最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Linux--C項目:基于Linux的多用戶的航班購票系統(tǒng)

2021-12-02 21:23 作者:風(fēng)菩提樹  | 我要投稿

1、項目實施環(huán)境

vm虛擬機、ubuntu系統(tǒng)、vscode代碼編輯器

2、系統(tǒng)框架

2.1、客戶端功能框架


2.2、客戶端與服務(wù)端的TCP通信框架


3、項目細(xì)節(jié)分析

3.1.?用戶的信息鏈表,航班票鏈表,航班鏈表

保存用戶信息的鏈表使用的是單向不循環(huán)鏈表,其中航班票的頭節(jié)點也保存在用戶鏈表中,相當(dāng)于,鏈表中有一個用戶,就有一個節(jié)點指向?qū)儆谄涞暮桨嗥钡逆湵恚涔?jié)點信息設(shè)計如下圖:

?


?

航班鏈表使用的是雙向循環(huán)鏈表,其節(jié)點信息設(shè)計如下圖:

?


?

航班使用的是單向循環(huán)鏈表,其節(jié)點信息設(shè)計如下圖:

?


?

2.客戶端與服務(wù)端的數(shù)據(jù)交換

客戶端與服務(wù)端的數(shù)據(jù)交換結(jié)構(gòu)是由一個結(jié)構(gòu)體,里面定義了一個無符號整型(unsigned int ),其代表的是一個功能標(biāo)志位,還定義了一個共用體(union ?service_data),其代表的是客戶端與服務(wù)端的交換數(shù)據(jù)。其設(shè)計如下圖:

?


功能標(biāo)志位設(shè)置如下:

3.服務(wù)端多路IO復(fù)用select模型

服務(wù)端的select負(fù)責(zé)監(jiān)聽服務(wù)端的監(jiān)聽套接字以及客戶端的已連接套接字。若用戶開始運行客戶端,則服務(wù)端的監(jiān)聽套接字會有響應(yīng),此時select監(jiān)聽到監(jiān)聽套接字有數(shù)據(jù),就立即返回,然后判斷監(jiān)聽套接字是否還在監(jiān)聽的文件描述符集合中,若在,則將已連接套接字保存到一個專門存放已連接套接字的數(shù)組connfd_buf。

若用戶開始發(fā)送數(shù)據(jù),則服務(wù)端的已連接套接字會有響應(yīng),此時select監(jiān)聽到已連接套接字有響應(yīng),此時select會立即返回,然后判斷數(shù)組connfd_buf中哪一個已連接套接字connfd發(fā)送數(shù)據(jù),然后,喚醒線程池中的一個線程去處理該用戶的所發(fā)過來的數(shù)據(jù)。

?


?源碼地址:??https://gitee.com/bodhi-cloud/qt-open-code.git

謝謝閱讀,點個贊唄。


?

?


?

?

?

?



Linux--C項目:基于Linux的多用戶的航班購票系統(tǒng)的評論 (共 條)

分享到微博請遵守國家法律
东宁县| 神木县| 准格尔旗| 吉林市| 平阳县| 韶关市| 武汉市| 沂水县| 沂南县| 沾益县| 霍林郭勒市| 邛崃市| 仪征市| 临海市| 宣武区| 奉节县| 梓潼县| 西平县| 高青县| 海城市| 富川| 会理县| 广州市| 无为县| 鄂托克前旗| 抚远县| 依兰县| 深泽县| 罗平县| 昭觉县| 芜湖县| 台南县| 湘潭市| 突泉县| 盐边县| 北安市| 宝坻区| 利川市| 五寨县| 萝北县| 独山县|