freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設(shè)計(jì)-linux下的類qq軟件開發(fā)(完整版)

2025-01-18 19:31上一頁面

下一頁面
  

【正文】 陸 信 息轉(zhuǎn) 發(fā) 聊 天 信 息 圖 31 服務(wù)器功能模型 客戶端功能模塊劃分 客戶端主要負(fù)責(zé)處理用戶的操作信息,當(dāng)用戶做出相應(yīng)的動(dòng)作時(shí)客戶端應(yīng)該能夠及時(shí)地做出相應(yīng),當(dāng) QT 圖形程序檢 測到鼠標(biāo)點(diǎn)擊時(shí),將觸發(fā)一個(gè)事件,對(duì)該事件進(jìn)行動(dòng)作的定義和函數(shù)的編寫便可完成相應(yīng)的動(dòng)作。 服務(wù)器功能模塊劃分 服務(wù)器負(fù)責(zé)向各個(gè)客戶端發(fā)布系統(tǒng)消息。因此無連接客戶程序必須在一個(gè)協(xié)議端口,對(duì)應(yīng)答數(shù)據(jù)報(bào)進(jìn)行偵聽。 采用 UDP 方式連接 采用 UDP 協(xié)議的程序不需要有服務(wù)器,兩個(gè)程序之間可以通過無連接的方式行通信,所以無連接是使用 UDP 協(xié)議程序的一個(gè)顯著特點(diǎn)。服務(wù)程序通常在一個(gè)眾所周知的地址監(jiān)聽對(duì)服務(wù)的請(qǐng)求,也就是說,服務(wù)進(jìn)程一直處于休眠狀態(tài) ,直到一個(gè)客戶程序提出了請(qǐng)求信息。因此,當(dāng)應(yīng)用程序出現(xiàn)了錯(cuò)誤的時(shí)候我們就需要程序能提供給我們出錯(cuò)的信息,這樣用戶就能夠很快的找出具體的出錯(cuò)原因,以便尋找合理的途徑去解決它。 應(yīng)該具有易用、美觀的圖形界面。由于設(shè)計(jì)該軟件的主要目的是深入的學(xué)習(xí) Linux 平臺(tái)上應(yīng)用程序的編寫方法,本系統(tǒng)將采用 GNU 的理論方法進(jìn)行開發(fā)。 運(yùn)行程序,設(shè)置所有的能影響程序運(yùn)行的東西。 編程語言和編程工 具簡介 因?yàn)?C 語言是平臺(tái)適應(yīng)性最強(qiáng)的語言,差不多每種平臺(tái)上都會(huì)有一個(gè) C 編譯器。 基本上, Qt 同 XWindow 上的 Motif, Openwin, GTK 等圖形界面庫和 Windows 平臺(tái)上的 MFC, OWL, VCL, ATL 是同類型的東西,但是 Qt 具有下列優(yōu)點(diǎn) : 1) 優(yōu)良的跨平臺(tái)特性 : Qt 支持下列操作系統(tǒng) : Microsoft Windows 95/98, Microsoft Windows NT, Linux, Solaris, SunOS,HPUX, Digital UNIX (OSF/1, Tru64), Irix, FreeBSD, BSD/OS,SCO, AIX, OS390, QNX 等等。它誕生于 1991 年的 10 月 5 日(這是第一次正式向外公布的時(shí)間)。 5 因?yàn)? UDP 具有 TCP 所望塵莫及的速度優(yōu)勢(shì)。包括網(wǎng)絡(luò)視頻會(huì)議系統(tǒng)在內(nèi)的眾多的客戶 /服務(wù)器模式的網(wǎng)絡(luò)應(yīng)用 都需要使用 UDP 協(xié)議。如果在規(guī)定時(shí)間內(nèi),沒有收到關(guān)于這個(gè)包的確認(rèn)響應(yīng),則需要重新發(fā)送此包。 大多數(shù)網(wǎng)絡(luò)應(yīng)用程序是在相同的機(jī)器上運(yùn)行的,計(jì)算機(jī)上必須能確保目的地的應(yīng)用程序從源地址處獲得數(shù)據(jù)包,及源計(jì)算機(jī)上的應(yīng)用程序的回復(fù)獲得選擇的路經(jīng)。但是有服務(wù)器的通訊軟件,有著不可比擬的優(yōu)勢(shì):可以發(fā)送離線消息,不管用戶當(dāng)時(shí)是否在線,下次上線時(shí),就可以看到這條消息了。 Linux 操作系統(tǒng)作為一個(gè)開源的操作系統(tǒng)被越來越多的人所應(yīng)用,它的好處在于操作系統(tǒng)源代碼的公開化!只要是基于 GNU 公約的軟件你都可以任意使用并修改它的源代碼。在此基礎(chǔ)上,進(jìn)一步的分析了該類產(chǎn)品的需求情況。 In 蘭 州 商 學(xué) 院 本科生畢業(yè)論文(設(shè)計(jì)) 論文(設(shè)計(jì))題目: Linux 下的類 軟件開發(fā) 學(xué) 院、 系: 信 息工程學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù)系 專 業(yè) (方 向 ): 電子信息工程 年 級(jí)、 班: 2021 級(jí) 學(xué) 生 姓 名: 指 導(dǎo) 教 師: 2021 年 3 月 6 日 聲 明 本人鄭重聲明:所呈交的畢業(yè)論文(設(shè)計(jì))是本人在導(dǎo)師的指導(dǎo)下取得的成果。在第三章中詳細(xì)的介紹了所選取的開發(fā)環(huán)境,通過了解這些知識(shí)將會(huì)對(duì)該類軟件的開發(fā)流程有一個(gè)總體的認(rèn)識(shí)。但對(duì)很多習(xí)慣于 Windows 操作系統(tǒng)的人來說, Linux 的操作不夠人性化、交互界面不夠美觀,這給 Linux 操作系統(tǒng)的普及帶來了很大的阻礙??梢员4嬗脩舻膫€(gè)人信息或個(gè)人簡介,供人查看。這一過程是通過使用 TCP 的 端口號(hào) 完成的。 TCP 的可靠機(jī)制允許設(shè)備處理丟失、 4 刪除及讀錯(cuò) 的包。 UDP 協(xié)議從問世至今已經(jīng)被使用了很多年,雖然其最初的光彩已經(jīng)被一些類似協(xié)議所掩蓋,但是即使是在今天, UDP 仍然不失為一項(xiàng)非常實(shí)用和可行的網(wǎng)絡(luò)傳輸層協(xié)議。雖然 TCP 協(xié)議中植入了各種安全保障功能,但是在實(shí)際執(zhí)行的過程中會(huì)占用大量的系統(tǒng)開銷,無疑使速度受到嚴(yán)重的影響。以后借助 6 于 Inter 網(wǎng)絡(luò),并經(jīng)過全世界各地計(jì)算機(jī)愛好者的共同努力下,現(xiàn)已成為今天世界上使用最多的一種 UNIX 類操作系統(tǒng),并且使用人數(shù)還在迅猛增長。 2) 面向?qū)ο? Qt 的良好封裝機(jī)制使得 Qt 的模塊化程度非常高,可重用性較好,對(duì)于用戶開發(fā)來說是非常方便的。 C 語言也更易移植,因而,在 Linux 下編程的最佳語言應(yīng)該是 C 語言, Linux 上的很多應(yīng)用程序就是用 C 語言寫的。保證程序在指定的條件下停止。 二、軟件需求分析 為了開發(fā)出符合要求的網(wǎng)絡(luò)聊天程序,首先必須知道使用 者的需求。 (二)總體性能需求 服務(wù)器端性能需求 服務(wù)器需要同時(shí)連接很多個(gè)用戶,并能提供給這些連接用戶所需要的任務(wù)處理請(qǐng)求,這就要求服務(wù)器能同時(shí)處理多個(gè) socket 連接。 (三)本章小結(jié) 需求是開發(fā)的前提,只有明確了需求才能開發(fā)出一個(gè)符合用戶期望的優(yōu)質(zhì)軟件。此時(shí),服務(wù)程序被 驚醒 并且為客戶提供服務(wù),對(duì)客戶的請(qǐng)求做出適當(dāng)?shù)姆磻?yīng)。使用無連接協(xié)議的程序和使用面向連接協(xié)議的服務(wù)器程序之間的主要相似之處是它們都必須對(duì)一個(gè)協(xié)議端口進(jìn)行偵聽。與服務(wù)器程序一樣,無連接客戶程序也使用 bind 函數(shù)讓 Socket 執(zhí)行體登記協(xié)議端口。 接受來自客戶端的各種信息并分別處理。因此,針對(duì)這些操作特性,將客戶端模塊進(jìn)行如下劃分: 登陸功能模塊:建立與服務(wù)器的連接并登陸,能顯示登陸錯(cuò)誤信息。 char receiver[10]。 }online_users_t。 unsigned int new。 四、軟件流程 本節(jié)主要敘述了該軟件的整體運(yùn)作流程,包括服務(wù)器和客戶端對(duì)消息的處理等流程,通過本節(jié)將能夠?qū)浖墓ぷ髁鞒痰玫揭粋€(gè)總體的 認(rèn)識(shí)。 (一)服務(wù)器主要函數(shù)和變量 套接字描述字: int sockfd, client_sockfd 套接字地址結(jié)構(gòu): struct sockaddr_in servAddr, cliAddr 線程 id 標(biāo)識(shí): pthread_t pthd 線程調(diào)用函數(shù): void gif_handle_client(int client_sockfd) 服務(wù)器主體函數(shù)只負(fù)責(zé)了套接字的創(chuàng)建、幫定和監(jiān)聽任務(wù),一旦服務(wù)器接收到了來自客戶端的消息后,就會(huì)創(chuàng)建一個(gè)線程來處理 該連 23 接,當(dāng)線程創(chuàng)建后它就會(huì)調(diào)用該函數(shù)對(duì)客戶消息進(jìn)行處理。 刪 除好友信息處理模塊: 當(dāng)服務(wù)器接收到用戶的該消息請(qǐng)求時(shí),服務(wù)器根據(jù)用戶所提供的好友用戶名來刪除被指定的好友,同時(shí)將用戶聯(lián)系人表進(jìn)行更新,在被刪除的好友的被添加好友表 中將當(dāng)前用戶刪除。 在編程時(shí)主要使用 fopen fread fwrite fclose 等函數(shù)對(duì)文件進(jìn)行操作,被打開文件的操作權(quán)限由 fopen 的參數(shù)來決定,讀取控制由 fread 來完成, fwrite 主要負(fù)責(zé)向文件中寫入新的信息。 需要填寫信息: Server ip:填寫服務(wù)器地址 User id: 填寫用戶名 Password :填寫密碼 點(diǎn)擊按鈕的消息事件: Cancel:退出當(dāng)前窗口 Clear:清空填寫的信息 OK:觸發(fā) on_butOk_clicked 函數(shù)該函數(shù)用 于連接服務(wù)器并同服務(wù)器進(jìn)行信息的發(fā)送與接收 添加用戶窗口: 當(dāng)用戶電擊主窗口中的 Add 按鈕時(shí)該窗體被激活。 QTTreeModel *offline_selected_model:定義離線消息查詢數(shù)據(jù)管理接 口。例如: QT_threads_enter()。之后,程序進(jìn)入主體運(yùn)行狀態(tài),各功能模塊被激活。通過對(duì)本章的分析理解將會(huì)對(duì)整個(gè)軟件的設(shè)計(jì)模式和編寫流程有一個(gè)比較深入的了解。 32 參考文獻(xiàn) [1] Stevens[美 ].TCP/IP 詳解 卷 1:協(xié)議 [M].西安:機(jī)械工業(yè)出版社, 2021 [2] Stevens[美 ].UNIX 網(wǎng)絡(luò)編程 (卷 1:套接口 API)第三版 [M].北京:清華大學(xué)出版社, 2021 [3] Stevens[美 ].UNIX 網(wǎng)絡(luò)編程 (卷 2:進(jìn)程間通信 )第二版 [M].北京:清華大學(xué)出版社, 2021 [4] Stevens[美 ].UNIX 環(huán)境高級(jí)編程第二版 [M].北京:人民郵電出版 社 , 2021 [5]Mark Summerfield[英 ].QT 高級(jí)編程 [M].北京: 電子工業(yè)出版社 , 2021 [6]孫瓊 [中 ]. 嵌入式 Linux 應(yīng)用程序開發(fā)詳解 [M].北京:人民郵電出版社, 2021 [7]Dennis C Programming Language[M].北京:機(jī)械工業(yè)版社, 2021 [8] 譚浩強(qiáng) [中 ]. C 程序設(shè)計(jì) [M].北京:清華大學(xué)出版社, 2021 [9] 譚浩強(qiáng) [中 ]. C++程序設(shè)計(jì) [M].北京:清華大學(xué)出版社, 2021 [10] 吳 岳 .linux c 程序設(shè)計(jì)大全 [M].北京:清華大學(xué)出版社 ,2021 [11] 劉明 .魅力起航 .[M].北京:北京華創(chuàng)恒信 , 2021 [12] 陳雙龍 , 朱興權(quán) .嵌入式系統(tǒng)應(yīng)用開發(fā) [M].北京:清華大學(xué)出版社 , 2021 33 致謝 本研究及學(xué)位論文是在我的導(dǎo)師彭會(huì)萍副教授的親切關(guān)懷和悉心指導(dǎo)下完成的。從課題的選擇到項(xiàng)目的最終完成,彭老師都始終給予我細(xì)心的指導(dǎo)和不懈的支持。這款軟件目前所具備的功能已經(jīng)能夠滿足日常的聊天需求。 消息處理模塊: 當(dāng)客戶端和服務(wù)器建立連接后,客戶端會(huì)創(chuàng)建一個(gè)專門的線程來維護(hù)客戶端和服務(wù)器之間的連接,該線程調(diào) 用函數(shù)根據(jù)從服務(wù)器接收到的消息類型來選擇消息處理模塊。 QT_threads_leave()。 enum { CONTACTS_COLUMN_TEXT, STATUS_COLUMN_PIXMAP }。s id:填寫要添加的好友的 loginid 號(hào) OK: GIF_ADD_CONTACTS_MSG 同時(shí)向服務(wù)器發(fā)送消息請(qǐng)求 系統(tǒng)消息窗口: 當(dāng)用戶的操作成功或者失敗的時(shí)候,系統(tǒng)會(huì)顯示一條消息給用戶,以便提示用戶操作是否成功。 在線用戶數(shù)據(jù)文件: 該文件中保存了當(dāng)前在線用戶的 loginid 和 socket 信息。如果用戶不在線則將消息標(biāo)識(shí)設(shè)定為離線消息,并將該消息寫入被指定用戶的離線消 息文件中。在 上一章 中我們敘述了服務(wù)器的消息處理流程,而最后的消息處理部分就是由這 7 個(gè)模塊來完成的。具體流程 如下圖 41 所示。 }offline_msgs_t。 }user_contacts_t。 }gifhdr_t。 聊天功能模塊:處理各種聊天信息,并判斷消息類型。就將在線用戶 發(fā)給該用戶,并將該用戶的狀態(tài)發(fā)給各在線用戶。 Socket 執(zhí)行體處理傳輸層內(nèi) UDP 軟件模塊和客戶程序之間的接口
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1