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

歡迎光臨散文網(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)的評論 (共 條)

分享到微博請遵守國家法律
车险| 乳源| 上虞市| 诸暨市| 石嘴山市| 徐水县| 沿河| 扎鲁特旗| 松江区| 托克托县| 克什克腾旗| 靖安县| 平原县| 无锡市| 衢州市| 新兴县| 黑河市| 安国市| 兖州市| 彭泽县| 集安市| 芷江| 夹江县| 修武县| 湖州市| 大兴区| 内江市| 巴楚县| 海兴县| 米易县| 北安市| 当涂县| 渭源县| 淄博市| 同心县| 平原县| 上高县| 苍南县| 鹤庆县| 山阴县| 武汉市|