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

正文內(nèi)容

畢業(yè)設(shè)計(jì)-linux下的類qq軟件開發(fā)-資料下載頁(yè)

2024-12-01 19:31本頁(yè)面

【導(dǎo)讀】本論文(設(shè)計(jì))的研究做出重要貢獻(xiàn)的個(gè)人和集體,均已在文中以明確方式標(biāo)明。畢業(yè)論文(設(shè)計(jì))引起的法律結(jié)果完全由本人承擔(dān)。最終實(shí)現(xiàn)了QQ申請(qǐng),QQ聊天,文件發(fā)送以及離線消。文章主要分為四個(gè)部分,第一部分主要分析了該類產(chǎn)品的一個(gè)發(fā)。展過(guò)程和開發(fā)此類軟件的背景及意義。在此基礎(chǔ)上,進(jìn)一步的分析了該類。產(chǎn)品的需求情況。在第三章中詳細(xì)的介紹了所選取的開發(fā)環(huán)境,通過(guò)了解。這些知識(shí)將會(huì)對(duì)該類軟件的開發(fā)流程有一個(gè)總體的認(rèn)識(shí)。預(yù)備方案的分析和總結(jié)后,最終確定設(shè)計(jì)路線。用各種圖表清晰的展現(xiàn)了軟件的模塊信息和總體結(jié)構(gòu)。這一章節(jié)中得到了體現(xiàn),完成效果符合前期的需求分析。件開發(fā)的不足之處,還有軟件需要完善的部分。

  

【正文】 請(qǐng)求時(shí),服務(wù)器根據(jù)用戶所提供的好友用戶名來(lái)刪除被指定的好友,同時(shí)將用戶聯(lián)系人表進(jìn)行更新,在被刪除的好友的被添加好友表 中將當(dāng)前用戶刪除。 用戶聊天信息轉(zhuǎn)發(fā)的處理模塊: 當(dāng)服務(wù)器判斷用戶所請(qǐng)求的信息為聊天消息后,服務(wù)器會(huì)根據(jù)用戶所指定的聊天對(duì)象到 表中查找被指定用戶是否在線,如果被指定用戶在線則提取他的套接字地址結(jié)構(gòu),并按照該套接字信息將消息轉(zhuǎn)發(fā)。如果用戶不在線則將消息標(biāo)識(shí)設(shè)定為離線消息,并將該消息寫入被指定用戶的離線消 息文件中。 用戶下線消息處理模塊: 當(dāng)服務(wù)器判斷用戶所請(qǐng)求的信息為下線消息后,服務(wù)器將把用戶 25 從 中刪除,設(shè)置該用戶狀態(tài)為下線,同時(shí)調(diào)用發(fā)送聯(lián)系人狀態(tài)函數(shù)將標(biāo)志位設(shè)置為離線向該用戶的聯(lián)系人發(fā)送。 離線消息處理模塊: 當(dāng)服務(wù)器判斷用戶所請(qǐng)求的信息為讀取離線消息后, 服務(wù)器會(huì)去讀用戶的離線消息文件,如果該文件中有被標(biāo)識(shí)為新的離線消息時(shí),服務(wù)器將把該消息提取出來(lái)發(fā)送給用戶,同時(shí)把該消息標(biāo)識(shí)為已讀。 刪除離線消息處理模塊: 如果客戶做出了刪除離線消息的動(dòng)作,那么服務(wù)器端將會(huì)根據(jù)用戶的發(fā)送信息把該用戶的離線消息文件中的離線消息刪除。 (三)服務(wù)器數(shù)據(jù)存儲(chǔ)的方法 該服務(wù)器采用文件作為數(shù)據(jù)存儲(chǔ)的對(duì)象。之所以采用這種發(fā)式是因?yàn)樵摲?wù)器作為一個(gè)小型的聊天軟件的服務(wù)器,本身所要求保存的數(shù)據(jù)量并不大,且用戶數(shù)量也是比較有限的,在這種情況下采用文件方式對(duì)信息進(jìn)行讀取在速度和開銷上都要有一些優(yōu)勢(shì),且便于管理員管理用戶。 在編程時(shí)主要使用 fopen fread fwrite fclose 等函數(shù)對(duì)文件進(jìn)行操作,被打開文件的操作權(quán)限由 fopen 的參數(shù)來(lái)決定,讀取控制由 fread 來(lái)完成, fwrite 主要負(fù)責(zé)向文件中寫入新的信息。 服務(wù)器上主要存放 5 類用戶信息文件: 用戶信息數(shù)據(jù)文件: 該文件中保存了用戶的 26 loginid 和 password。 在線用戶數(shù)據(jù)文件: 該文件中保存了當(dāng)前在線用戶的 loginid 和 socket 信息。 用戶擁有好友文件: 該文件中保存了當(dāng)前用戶所添加的好友信息。 被添加為好友文件: 該文件中保存了有哪些用戶把當(dāng)前用戶添加為好友。 (四)客戶端主要窗口設(shè)計(jì) 根據(jù)前面的選題背景和需求分析,此款軟件的客戶端部分提供了圖形用戶界面,程序運(yùn)行后激活主窗體,在主窗體上點(diǎn)擊設(shè)置為敏感狀態(tài)的按鈕就會(huì)產(chǎn)生相應(yīng)的事件,該事件將會(huì)觸發(fā)一個(gè)消息驅(qū)動(dòng)所指定的函數(shù)來(lái)處理這個(gè)操作。 主窗體:該窗體中包含了所有的用戶操作按鈕和好友列表,用戶的操作都在這個(gè)窗體中完成。 窗體中包含按鈕: Conn 菜單:包含 Conn、 Disconnect 和 Quit 按鈕 Contacts 菜單:包含 Add、 Delete 和 Offline 按鈕 Help 菜單:包含 About 按鈕 聯(lián)系人列 表: Status 列:顯示聯(lián)系人狀態(tài)信 Contacts 列:顯示好友列表 27 Available 顯示表示用戶有好友 當(dāng)用戶無(wú)好友時(shí)顯示 Not Available 登錄窗口: 當(dāng)用戶點(diǎn)擊主窗口中的 Conn 按鈕時(shí),該窗體被激活。 需要填寫信息: 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í)該窗體被激活。 Contact39。s id:填寫要添加的好友的 loginid 號(hào) OK: GIF_ADD_CONTACTS_MSG 同時(shí)向服務(wù)器發(fā)送消息請(qǐng)求 系統(tǒng)消息窗口: 當(dāng)用戶的操作成功或者失敗的時(shí)候,系統(tǒng)會(huì)顯示一條消息給用戶,以便提示用戶操作是否成功。在相關(guān)的函數(shù)內(nèi)將該窗口的激活屬性打開,消息窗口便會(huì)自動(dòng)的彈出并顯示消息。 上面的窗體是客戶端用戶在使用中會(huì)經(jīng)常使用到的一些窗口事 28 件,這些部件統(tǒng)一起來(lái) 便形成了一套完整的客戶端圖形用戶界面。 (五)客戶端主要函數(shù)和變量 QTWidget *tree:用于顯示客戶端聯(lián)系人列表的樹視圖 QTWidget *offline_tree:用于顯示離線消息的樹視圖 QTWidget *chat_window[100]:用于保存聊天窗體的編號(hào)。 QTListStore *offline_temp_store:定義一個(gè)離線消息數(shù)據(jù)管 理類型。 QTTreeIter offline_selected_iter:定義一個(gè)查詢離線消息的迭代器。 QTTreeModel *offline_selected_model:定義離線消息查詢數(shù)據(jù)管理接 口。 QTCellRenderer *renderer:定義一個(gè)數(shù)據(jù)表現(xiàn)形式繪制類型。 enum { CONTACTS_COLUMN_TEXT, STATUS_COLUMN_PIXMAP }。 上面的枚舉類型定義了用戶聯(lián)系人視窗中的列標(biāo)識(shí)。 Qt_widget_set_sensitive(widget, TRUE):設(shè)置指定控件的敏感度 TRUE 可以點(diǎn)擊 FALSE 則不能點(diǎn)擊。 Void gif_receive_messages(int server_sockfd):處理從服務(wù) 29 器端發(fā)送過(guò)來(lái)的消息,根據(jù)信息包所攜帶的消息類型信息選擇消息處理模塊。 Void gif_call_client_for_chat(GtkTreeSelection *selection, gpointer data): 當(dāng)用戶點(diǎn)擊聯(lián)系人時(shí)會(huì)產(chǎn)生一個(gè)消息事件,程序根據(jù)用戶所選擇的聯(lián)系人生成聊天窗口,并對(duì)該窗體進(jìn)行初始化。在系統(tǒng)調(diào)用線程時(shí)為保證線程安全,需要前后分別調(diào)用 QT_threads_enter()和 QT_threads_leave()函數(shù)。例如: QT_threads_enter()。 QT_widget_show(create_msgbox(error,ServerDisconnected)。 QT_threads_leave()。 (六)客戶端功能模塊的設(shè)計(jì)與實(shí)現(xiàn) 用戶認(rèn)證模塊: 主要用到的函數(shù)為: connect(), send(), pthread_create()當(dāng)用戶啟動(dòng)程序后首先需要用戶登陸到服務(wù)器才能進(jìn)一步的對(duì)軟件進(jìn)行操作,這一部分即為用戶認(rèn)證模塊。 該模塊在登陸窗口中收集服務(wù)器的 IP 地址和用戶的用戶名和密碼。當(dāng)用戶點(diǎn)擊登陸后,系統(tǒng)將用戶輸入的 IP 地址寫入 Socket 地址結(jié)構(gòu),然后對(duì)套接口地址結(jié)構(gòu)進(jìn)行綁定。同時(shí)將用戶名寫入消息 30 頭結(jié)構(gòu)體,并將密碼隨同數(shù)據(jù)字段一起發(fā)送給服務(wù)器。如果登陸成功,則創(chuàng)建線程來(lái)維護(hù)和服務(wù)器的連接。之后,程序進(jìn)入主體運(yùn)行狀態(tài),各功能模塊被激活。 界面顯示模塊: 當(dāng)用戶成功登陸后,在聯(lián)系人列表中將會(huì)顯示用戶的聯(lián)系人信息,視圖是用列表視圖來(lái)實(shí)現(xiàn)的。 消息處理模塊: 當(dāng)客戶端和服務(wù)器建立連接后,客戶端會(huì)創(chuàng)建一個(gè)專門的線程來(lái)維護(hù)客戶端和服務(wù)器之間的連接,該線程調(diào) 用函數(shù)根據(jù)從服務(wù)器接收到的消息類型來(lái)選擇消息處理模塊。該模塊主要處理以下幾種消息類型: 更新聯(lián)系人列表信息: 當(dāng)判斷接收到的消息為 GIF_ADDRLIST_MSG 時(shí),程序?qū)?duì)聯(lián)系人視圖進(jìn)行刷新以便及時(shí)的顯示聯(lián)系人的當(dāng)前狀態(tài)。實(shí)現(xiàn)刷新的方法是,先將以前的樹移除然 后按照新的聯(lián)系人狀態(tài)進(jìn)行樹的繪制。 聊天信息: 當(dāng)接收服務(wù)器發(fā)送的消息的類型為 GIF_CHAT_MSG 時(shí),程序首先要確定是誰(shuí)發(fā)出的聊天請(qǐng)求,然后判斷聊天窗口是否開啟,如果未開啟則將開啟標(biāo)識(shí)設(shè)為真,然后打開聊天窗口。 消息請(qǐng)求成功或失敗 信息: 如果接收到了 GIF_SUCCESS_N_ERROR_MSG 類型的消息,則程序還會(huì)進(jìn)一步的根據(jù)另外一個(gè)標(biāo)識(shí)符判斷是何種系統(tǒng)消息,并通過(guò)系統(tǒng)消 31 息窗口顯示給用戶。 (七)本章小結(jié) 本章是全文的重點(diǎn),從軟件的總體結(jié)構(gòu)到具體的流程再到詳細(xì)的分析和設(shè)計(jì)實(shí)現(xiàn),都為軟件的設(shè)計(jì)奠定了堅(jiān)實(shí)的一步。通過(guò)對(duì)本章的分析理解將會(huì)對(duì)整個(gè)軟件的設(shè)計(jì)模式和編寫流程有一個(gè)比較深入的了解。 六、結(jié) 論 在經(jīng)過(guò)了幾個(gè)月的設(shè)計(jì)和編寫過(guò)后,一套適用于 Linux 操作系統(tǒng)的網(wǎng)絡(luò)聊天軟件基本成型,前期設(shè)計(jì)的一些功能需求也都得到了實(shí)現(xiàn) 。這款軟件目前所具備的功能已經(jīng)能夠滿足日常的聊天需求。服務(wù)器經(jīng)過(guò)多平臺(tái)的測(cè)試后,能夠穩(wěn)定的運(yùn)行。客戶端圖形界面效果良好,使用起來(lái)也簡(jiǎn)單易用。欠缺之處在于沒有實(shí)現(xiàn)系統(tǒng)托盤,用戶使用時(shí)只能通過(guò)點(diǎn)擊任務(wù)欄的標(biāo)簽對(duì)軟件進(jìn)行顯示或隱藏,這一部分的功能將會(huì)進(jìn)一步的完善。 作為大學(xué)四年學(xué)習(xí)成果的總結(jié),設(shè)計(jì)和編寫這樣一個(gè)軟件能夠?qū)⑺鶎W(xué)過(guò)的知識(shí)綜合運(yùn)用,并在實(shí)踐中得到提高,達(dá)到了預(yù)期的總結(jié)并檢驗(yàn)學(xué)習(xí)成果目的。當(dāng)在開發(fā)過(guò)程中遇到問(wèn)題時(shí),分析并解決問(wèn)題,在這一過(guò)程中能夠逐步的充實(shí)自己,這是在做畢業(yè)設(shè)計(jì)的過(guò)程中讓我得到的最大收益 。 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)下完成的。他嚴(yán)肅的科學(xué)態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神,精益求精的工作作風(fēng),深深地感染和激勵(lì)著我。從課題的選擇到項(xiàng)目的最終完成,彭老師都始終給予我細(xì)心的指導(dǎo)和不懈的支持。兩年多來(lái),彭教授不僅在學(xué)業(yè)上給我以精心指導(dǎo),同時(shí)還在思想、生活上 給我以無(wú)微不至的關(guān)懷,在此謹(jǐn)向彭老師致以誠(chéng)摯的謝意和崇高的敬意。 在此,我還要感謝在一起愉快的度過(guò)四年的大學(xué)生活的 07級(jí)各位同門,正是由于你們的幫助和支持,我才能克服一個(gè)一個(gè)的困難和疑惑,直至本文的順利完成。 在論文即將完成之際,我的心情無(wú)法平靜,從開始進(jìn)入課題到論文的順利完成,有多少可敬的師長(zhǎng)、同學(xué)、朋友給了我無(wú)言的幫助,在這里請(qǐng)接受我誠(chéng)摯的謝意 !最后我還要感謝培養(yǎng)我長(zhǎng)大含辛茹苦的父母,謝謝你們 ! 34 附錄
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1