五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

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

分享到微博請遵守國家法律
诸城市| 紫金县| 桃源县| 庄河市| 东至县| 莆田市| 纳雍县| 汤阴县| 苍山县| 洛隆县| 大城县| 财经| 兴和县| 绥芬河市| 桃园县| 本溪市| 集贤县| 陇西县| 浑源县| 柘城县| 浏阳市| 应城市| 遂平县| 谷城县| 新泰市| 莱西市| 应用必备| 浑源县| 忻州市| 同德县| 镇巴县| 曲水县| 团风县| 习水县| 灌阳县| 莲花县| 夹江县| 修武县| 滦平县| 工布江达县| 阿克|