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

正文內(nèi)容

linux平臺下的聊天軟件的設(shè)計與開發(fā)—計算機(jī)畢業(yè)設(shè)計論文-在線瀏覽

2024-10-04 11:23本頁面
  

【正文】 服務(wù)器消息處理流程 11 客戶端操作流程 12 客戶端消息發(fā)送和接收流程 13 申請用戶流程 145 詳細(xì)設(shè)計 15 服務(wù)器主要函數(shù)和變量 15 服務(wù)器消息處理模塊的設(shè)計與實現(xiàn) 15 服務(wù)器數(shù)據(jù)存儲的方法 16 客戶端主要窗口設(shè)計 17 客戶端主要函數(shù)和變量 20 客戶端功能模塊的設(shè)計與實現(xiàn) 21 本章小結(jié) 23結(jié) 論 23參考文獻(xiàn) 24致 謝 25聲 明 261 引言 課題的背景及意義在網(wǎng)絡(luò)無所不在的今天,在Internet上,有ICQ、MSN、Gtalk、OICQ等網(wǎng)絡(luò)聊天軟件,極大程度上方便了處于在世界各地的友人之間的相互聯(lián)系,也使世界好像一下子縮小了,不管你在哪里,只要你上了網(wǎng),打開這些軟件,就可以給你的朋友發(fā)送信息,不管對方是否也同時在線,只要知道他有號碼。但對很多習(xí)慣于Windows操作系統(tǒng)的人來說,Linux的操作不夠人性化、交互界面不夠美觀,這給Linux操作系統(tǒng)的普及帶來了很大的阻礙。 網(wǎng)絡(luò)聊天軟件的發(fā)展及現(xiàn)狀網(wǎng)絡(luò)的誕生從某種意義上來說改變了我們的生活,它將這個世界的上不同地域的人之間的距離拉近了。最初的網(wǎng)絡(luò)聊天軟件只是有簡單的文本界面,功能也十分有限,隨著技術(shù)的不斷發(fā)展與強(qiáng)大,擁有更多功能和美觀界面的聊天程序走進(jìn)了我們的生活,也有越來越多的人將網(wǎng)絡(luò)聊天軟件作為他們?nèi)粘I罱涣骱屯ㄐ诺墓ぞ摺,F(xiàn)在也有很多在網(wǎng)絡(luò)上不使用服務(wù)器的通訊軟件,這種軟件小巧且方便,也能解決一部分問題。可以保存用戶的個人信息或個人簡介,供人查看。所以,帶服務(wù)器的聊天軟件在網(wǎng)絡(luò)上,有著非常廣泛的用途,為網(wǎng)絡(luò)上的通訊帶來了極大的方便,它使人與人之間的交流不再只局限于某一個范圍,并且它的開銷也是很小的,你只需要擁有一部可以聯(lián)網(wǎng)的PC機(jī)就足夠了! TCP/IP協(xié)議簡介TCP/IP是國際互聯(lián)網(wǎng)所采用進(jìn)行網(wǎng)際互連的通信協(xié)議。 TCP協(xié)議簡介因為我們這個程序所采用的是面向連接的TCP協(xié)議,所以我們這里就只對TCP(傳輸控制協(xié)議)這一部分作詳細(xì)的介紹。與 IP 協(xié)議相結(jié)合,TCP 代表了網(wǎng)絡(luò)協(xié)議的核心。這一過程是通過使用 TCP 的“端口號”完成的。為了可靠通信,TCP 在端點間建立了連接或虛擬電路。關(guān)于數(shù)據(jù)流傳輸,TCP 發(fā)送一個由序列號定義的無結(jié)構(gòu)的字節(jié)流。TCP 是面向連接的端到端的可靠協(xié)議,并保證傳送數(shù)據(jù)包的順序,而順序是用一個響應(yīng)序號來保證的,這個響應(yīng)序號告訴接收者發(fā)送者期望的下一個包。TCP 的可靠機(jī)制允許設(shè)備處理丟失、刪除及讀錯的包。TCP 提供了有效流控制。全雙工操作:TCP 進(jìn)程能夠同時發(fā)送和接收包。 UDP協(xié)議簡介UDP協(xié)議是英文User Datagram Protocol的縮寫,即用戶數(shù)據(jù)報協(xié)議,主要用來支持那些需要在計算機(jī)之間傳輸數(shù)據(jù)的網(wǎng)絡(luò)應(yīng)用。UDP協(xié)議從問世至今已經(jīng)被使用了很多年,雖然其最初的光彩已經(jīng)被一些類似協(xié)議所掩蓋,但是即使是在今天,UDP仍然不失為一項非常實用和可行的網(wǎng)絡(luò)傳輸層協(xié)議。根據(jù)OSI(開放系統(tǒng)互連)參考模型,UDP和TCP都屬于傳輸層協(xié)議。一個典型的數(shù)據(jù)報就是一個二進(jìn)制數(shù)據(jù)的傳輸單位。既然UDP是一種不可靠的網(wǎng)絡(luò)協(xié)議,那么還有什么使用價值或必要呢?其實不然,在有些情況下UDP協(xié)議可能會變得非常有用。雖然TCP協(xié)議中植入了各種安全保障功能,但是在實際執(zhí)行的過程中會占用大量的系統(tǒng)開銷,無疑使速度受到嚴(yán)重的影響。 套接字簡介應(yīng)用層通過傳輸層進(jìn)行數(shù)據(jù)通信時,TCP和UDP會遇到同時為多個應(yīng)用程序進(jìn)程提供并發(fā)服務(wù)的問題。為了區(qū)別不同的應(yīng)用程序進(jìn)程和連接,許多計算機(jī)操作系統(tǒng)為應(yīng)用程序與TCP/IP協(xié)議交互提供了稱為套接字(Socket)的接口。通過將這3個參數(shù)結(jié)合起來,與一個Socket綁定,應(yīng)用層就可以和傳輸層通過套接字接口,區(qū)分來自不同應(yīng)用程序進(jìn)程或網(wǎng)絡(luò)連接的通信,實現(xiàn)數(shù)據(jù)傳輸?shù)牟l(fā)服務(wù) 開發(fā)平臺簡介 Linux系統(tǒng)簡介Linux 操作系統(tǒng)是UNIX 操作系統(tǒng)的一種克隆系統(tǒng)。以后借助于Internet 網(wǎng)絡(luò),并經(jīng)過全世界各地計算機(jī)愛好者的共同努力下,現(xiàn)已成為今天世界上使用最多的一種UNIX 類操作系統(tǒng),并且使用人數(shù)還在迅猛增長。旨在開發(fā)一個類似 Unix、并且是自由軟件的完整操作系統(tǒng):GNU 系統(tǒng)。 Gtk+圖形開發(fā)庫簡介Gtk+(GIMP Toolkit,GIMP工具包)是一個用于創(chuàng)造圖形用戶接口的圖形庫。Gtk+圖形庫使用一系列稱為“構(gòu)件”的對象來創(chuàng)建應(yīng)用程序的圖形用戶接口??梢杂盟鼈儊順?gòu)造非常豐富的用戶界面。一般把這些構(gòu)件稱為Gnome構(gòu)件(與Gtk+構(gòu)件相對應(yīng))。從本質(zhì)上來說, Gtk+構(gòu)件和Gnome構(gòu)件是完全類似的東西。雖然完全是用C寫成的,但它仍然是用類和回調(diào)函數(shù)(指向函數(shù)的指針)的方法實現(xiàn)的。Gnome的一些新特性,如popt參數(shù)分析,保存應(yīng)用程序設(shè)置等也是Gtk+構(gòu)件所沒有的。 Glade集成開發(fā)工具簡介Glade是面向GTK+/Gtkmm的圖形界面開發(fā)工具。Glade提供了一個類庫,在程序運行的時候,它可以通過讀取XML文件而生成相應(yīng)的程序界面,從而達(dá)到了程序代碼邏輯與用戶界面的完全分離。對于比較小型的項目,這種方法是比較適用的。也許這是以后桌面應(yīng)用程序開發(fā)的一個方向。C語言也更易移植,因而,在Linux下編程的最佳語言應(yīng)該是C語言,Linux上的很多應(yīng)用程序就是用C語言寫的。Linux發(fā)布版本中都提供了C編譯器gcc。gcc是可以在多種硬體平臺上編譯出可執(zhí)行程序的超級編譯器,其執(zhí)行效率與一般的編譯器相比平均效率要高20%~30% gcc 編譯器能將C、C++語言源程序、匯程式化序和目標(biāo)程序編譯、連接成可執(zhí)行文件,如果沒有給出可執(zhí)行文件的名字。GDB主要能做四件事(包括為了完成這些事而附加的功能),幫助用戶找出程序中的錯誤。保證程序在指定的條件下停止。改變程序。用戶可以用GDB來調(diào)試C和C++寫的程序。所以,開發(fā)一個網(wǎng)絡(luò)里的C/S通訊軟件是十分必要的。2 軟件需求分析為了開發(fā)出符合要求的網(wǎng)絡(luò)聊天程序,首先必須知道使用者的需求。 軟件功能需求登錄功能??蛻艨梢酝ㄟ^服務(wù)器轉(zhuǎn)發(fā),實現(xiàn)一對一的聊天??蛻舳顺绦蚩梢燥@示在線好友。 總體性能需求 服務(wù)器端性能需求服務(wù)器需要同時連接很多個用戶,并能提供給這些連接用戶所需要的任務(wù)處理請求,這就要求服務(wù)器能同時處理多個socket連接。因此我們將采用多線程方式的并發(fā)服務(wù)器來設(shè)計服務(wù)器端,這樣將能從很大程度上提高服務(wù)器的運行效率。當(dāng)一個窗體出現(xiàn)問題時能夠及時的處理,讓主程序不受影響。當(dāng)有錯誤發(fā)生時,我們應(yīng)該有一個很好的機(jī)制來保障錯誤能夠及時地被排除。 本章小結(jié)需求是開發(fā)的前提,只有明確了需求才能開發(fā)出一個符合用戶期望的優(yōu)質(zhì)軟件。3 程序設(shè)計方案 方案比較 采用TCP方式連接TCP方式連接的一個顯著特點就是需要有服務(wù)器,這種類型的程序通常被稱為客戶機(jī)/服務(wù)器模式。客戶及/服務(wù)器模型將網(wǎng)絡(luò)應(yīng)用程序分為客戶和服務(wù)器兩部分。在TCP/IP網(wǎng)絡(luò)應(yīng)用中,多數(shù)網(wǎng)絡(luò)應(yīng)用程序是使用客戶/服務(wù)器模型設(shè)計的。此時,服務(wù)程序被驚醒并且為客戶提供服務(wù),對客戶的請求做出適當(dāng)?shù)姆磻?yīng)。當(dāng)建立服務(wù)器程序時,應(yīng)該將服務(wù)器程序設(shè)計成等候客戶的請求。當(dāng)服務(wù)器配置socket接口時,它使用bind()函數(shù)讓socket執(zhí)行體登記一個協(xié)議端口。Socket執(zhí)行體接著告訴傳輸層某個特定協(xié)議端口已被使用,并將其收到的所有數(shù)據(jù)傳送給Socket API。使用無連接協(xié)議的程序和使用面向連接協(xié)議的服務(wù)器程序之間的主要相似之處是它們都必須對一個協(xié)議端口進(jìn)行偵聽。同樣,由于無連接客戶程序沒有和遠(yuǎn)地主機(jī)建立直接連接,所以它也必須對協(xié)議端口進(jìn)行偵聽,以便接收以對它服務(wù)請求產(chǎn)生的數(shù)據(jù)報應(yīng)答。下面程序行顯示了一個典型的函數(shù)調(diào)用:result=bind ( socket_handle, local_structure socket_address, address_ length)無連接客戶程序也對一個協(xié)議端口進(jìn)行偵聽。無連接客戶程序使用數(shù)據(jù)報發(fā)送網(wǎng)絡(luò)服務(wù)請求,它不建立點到點連接。與服務(wù)器程序一樣,無連接客戶程序也使用bind函數(shù)讓Socket執(zhí)行體登記協(xié)議端口。Socket執(zhí)行體處理傳輸層內(nèi)UDP軟件模塊和客戶程序之間的接口。采用C/S結(jié)構(gòu)。 總體設(shè)計方案為實現(xiàn)網(wǎng)絡(luò)聊天的功能,該軟件采用Socket編程,服務(wù)器與客戶端采用了TCP/IP方式連接,在設(shè)計聊天方案時,實行將所有信息發(fā)往服務(wù)器端,再由服務(wù)器進(jìn)行分別處理的思路,服務(wù)器端是所有信息的中心。接受來自客戶端的各種信息并分別處理。就將在線用戶發(fā)給該用戶,并將該用戶的狀態(tài)發(fā)給各在線用戶。處理聊天信息模塊:轉(zhuǎn)發(fā)消息給指定的用戶。發(fā)布系統(tǒng)消息模塊:將用戶上下線的消息發(fā)給各客戶端,并改寫用戶在服務(wù)器端和客戶端的狀態(tài)。因此,針對這些操作特性,將客戶端模塊進(jìn)行如下劃分:登陸功能模塊:建立與服務(wù)器的連接并登陸,能顯示登陸錯誤信息。聊天功能模塊:處理各種聊天信息,并判斷消息類型。配置信息模塊:提供基本的軟件配置操作。 unsigned int length。 char receiver[10]。}gifhdr_t。 char password[20]。在線用戶信息結(jié)構(gòu):typedef struct _online_users_t{ char loginid[20]。}online_users_t。}user_contacts_t。 unsigned int status。離線消息存儲時離線消息結(jié)構(gòu):typedef struct _offl
點擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1