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

正文內(nèi)容

linux平臺(tái)下的聊天軟件的設(shè)計(jì)與開發(fā)—計(jì)算機(jī)畢業(yè)設(shè)計(jì)論文-文庫(kù)吧資料

2024-09-06 11:23本頁(yè)面
  

【正文】 友,同時(shí)將用戶聯(lián)系人表進(jìn)行更新。如果匹配不成功,服務(wù)器將發(fā)送登錄失敗消息給客戶端,要求用戶重新登錄。獲取系統(tǒng)時(shí)間函數(shù):char *gif_get_system_time()該函數(shù)取出當(dāng)前系統(tǒng)時(shí)間并隨消息一同發(fā)出,以便讓用戶能更好的了解到消息是何時(shí)發(fā)出的。而最后的消息處理部分就是由這7個(gè)模塊來(lái)完成的。 服務(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ù)器接收到了來(lái)自客戶端的消息后,就會(huì)創(chuàng)建一個(gè)線程來(lái)處理該連接,當(dāng)線程創(chuàng)建后它就會(huì)調(diào)用該函數(shù)對(duì)客戶消息進(jìn)行處理。具體流程如下圖所示:圖 45 客戶端消息處理流程圖 申請(qǐng)用戶流程運(yùn)行用戶管理程序添加用戶顯示用戶刪除用戶退出程序管理員在服務(wù)器一端統(tǒng)一注冊(cè)用戶,然后將賬號(hào)分發(fā)給各用戶,申請(qǐng)用戶為單獨(dú)程序完成,當(dāng)新用戶注冊(cè)好后系統(tǒng)會(huì)創(chuàng)建3個(gè)用戶信息表用來(lái)保存相應(yīng)的客戶信息。當(dāng)用戶點(diǎn)擊在線好友時(shí)便會(huì)彈出一個(gè)聊天信息窗體,該窗體用于發(fā)送和接收用戶的聊天信息。 服務(wù)器消息處理流程服務(wù)器運(yùn)行后即處于監(jiān)聽狀態(tài),當(dāng)監(jiān)聽到有連接請(qǐng)求時(shí)服務(wù)器進(jìn)入消息處理流程,因?yàn)榉?wù)器為并發(fā)服務(wù)器,所以可以同時(shí)對(duì)多個(gè)請(qǐng)求做出相應(yīng)。}offline_msgs_send_t。 unsigned int new。用戶發(fā)送離線消息結(jié)構(gòu):typedef struct _offline_msgs_send_t{ char sender[20]。 char message[1024]。 char dateserial[20]。}user_status_t。用戶當(dāng)前狀態(tài):typedef struct _user_status_t{ char loginid[20]。用戶聯(lián)系人信息結(jié)構(gòu):typedef struct _user_contacts_t{ char loginid[20]。 int sockfd。}users_t。用戶信息結(jié)構(gòu):typedef struct _users_t{ char loginid[20]。 unsigned int reserved。 char sender[10]??蛻舳斯δ苁疽鈭D:登陸到服務(wù)器客戶端界面顯示模塊配置信息模塊聊天功能模塊離線消息模塊 息圖42 客戶端功能模型 消息標(biāo)識(shí)的定義define GIF_LOGIN_MSG 1 用戶登錄define GIF_CALL_MSG 2 用戶呼叫define GIF_ADDRLIST_MSG 3更新聯(lián)系人列表信息define GIF_ADD_CONTACTS_MSG 4 添加連接信息define GIF_DELETE_CONTACTS_MSG 5 刪除連接信息define GIF_CHAT_MSG 6聊天信息define GIF_DISCONNECT_MSG 7 用戶下線消息define GIF_SUCCESS_N_ERROR_MSG 8消息請(qǐng)求成功或失敗信息define GIF_OFFLINE_REQUEST_MSG 9 發(fā)送離線消息define GIF_OFFLINE_MSG 10 離線消息define GIF_OFFLINE_DELETE_MSG 11 刪除離線消息用戶發(fā)送消息成功或失敗定義:define GIF_ERROR_LOGIN_INCORRECT 101 錯(cuò)誤的登陸信息define GIF_SUCCESS_ADD_CONTACTS 102 添加連接信息成功define GIF_ERROR_ADD_CONTACTS 103 添加連接信息錯(cuò)誤define GIF_SUCCESS_DELETE_CONTACTS 104 刪除連接信息成功define GIF_ERROR_DELETE_CONTACTS_NOT_A_CONTACT 105 用戶離線define GIF_ERROR_DELETE_CONTACTS_NOT_A_MEMBER 106 無(wú)指定用戶 消息結(jié)構(gòu)體的設(shè)計(jì)消息頭:typedef struct _gifhdr_t{ unsigned int type。離線消息模塊:接收和發(fā)送離線消息,對(duì)離線消息進(jìn)行處理。界面顯示模塊:將在線好友顯示在好友列表中,并顯示其當(dāng)前狀態(tài)。服務(wù)器功能示意圖:服務(wù)器端處理申請(qǐng)信息轉(zhuǎn)發(fā)聊天信息處理登陸信息發(fā)布系統(tǒng)消息圖41 服務(wù)器功能模型 客戶端功能模塊劃分客戶端主要負(fù)責(zé)處理用戶的操作信息,當(dāng)用戶做出相應(yīng)的動(dòng)作時(shí)客戶端應(yīng)該能夠及時(shí)地做出相應(yīng),當(dāng)GTK圖形程序檢測(cè)到鼠標(biāo)點(diǎn)擊時(shí),將觸發(fā)一個(gè)事件,對(duì)該事件進(jìn)行動(dòng)作的定義和函數(shù)的編寫便可完成相應(yīng)的動(dòng)作。處理申請(qǐng)信息模塊:通過(guò)用戶申請(qǐng)模塊進(jìn)行新用戶的注冊(cè),保存該用戶信息。同時(shí)在服務(wù)器端顯示出來(lái)。針對(duì)這些操作,服務(wù)器做了如下的模塊劃分:處理登陸信息模塊:檢查登陸信息是否正確,并向客戶端返回登陸信息,如信息正確。 服務(wù)器功能模塊劃分服務(wù)器負(fù)責(zé)向各個(gè)客戶端發(fā)布系統(tǒng)消息。系統(tǒng)界面美觀內(nèi)容豐富,很好的實(shí)現(xiàn)了與用戶的交互。 方案選擇綜合以上分析,本軟件開發(fā)選擇方案如下:Linux系統(tǒng)采用C語(yǔ)言開發(fā), TCP方式進(jìn)行連接。也就是說(shuō),類似服務(wù)器程序,無(wú)連接客戶程序告訴Socket執(zhí)行體使用哪個(gè)協(xié)議端口進(jìn)行數(shù)據(jù)傳輸。因此無(wú)連接客戶程序必須在一個(gè)協(xié)議端口,對(duì)應(yīng)答數(shù)據(jù)報(bào)進(jìn)行偵聽。使用無(wú)連接協(xié)議的程序不和遠(yuǎn)地主機(jī)建立直接連接。Socket API中的bind()函數(shù)讓程序?qū)⒁粋€(gè)本地地址(包括主機(jī)地址和協(xié)議端口)和一個(gè)Socket聯(lián)系起來(lái)。例如,無(wú)連接和連接服務(wù)器程序必須在協(xié)議端口偵聽客戶請(qǐng)求。 采用UDP方式連接采用UDP協(xié)議的程序不需要有服務(wù)器,兩個(gè)程序之間可以通過(guò)無(wú)連接的方式進(jìn)行通信,所以無(wú)連接是使用UDP協(xié)議程序的一個(gè)顯著特點(diǎn)。也就是說(shuō),程序告訴socket執(zhí)行體使用哪一個(gè)協(xié)議端口進(jìn)行數(shù)據(jù)傳送。TCP傳輸層通過(guò)協(xié)議端口和應(yīng)用程序通信,也就是說(shuō),為了接收客戶請(qǐng)求,服務(wù)器程序必須對(duì)傳輸層的一個(gè)特定協(xié)議端口進(jìn)行偵聽。雖然基于連接的服務(wù)是設(shè)計(jì)客戶/服務(wù)器應(yīng)用程序的標(biāo)準(zhǔn),但有些服務(wù)也是可以通過(guò)數(shù)據(jù)報(bào)Socket提供的。服務(wù)程序通常在一個(gè)眾所周知的地址監(jiān)聽對(duì)服務(wù)的請(qǐng)求,也就是說(shuō),服務(wù)進(jìn)程一直處于休眠狀態(tài),直到一個(gè)客戶程序提出了請(qǐng)求信息??蛻舴綄?duì)服務(wù)器方發(fā)送信息請(qǐng)求,服務(wù)器方對(duì)其做出相應(yīng)回答,提供服務(wù)??蛻魴C(jī)/服務(wù)器模型也是一種網(wǎng)絡(luò)模型,但與前述的網(wǎng)絡(luò)模型不同,它并不是定義了網(wǎng)絡(luò)的層次結(jié)構(gòu),而是描述了一種網(wǎng)絡(luò)程序運(yùn)行的方式。上面已經(jīng)總體上列出該聊天程序的基本功能需求,接下來(lái)的工作就是如何將這些功能開發(fā)的盡量完善,使得界面清晰簡(jiǎn)單,方便易用。因此,當(dāng)應(yīng)用程序出現(xiàn)了錯(cuò)誤的時(shí)候我們就需要程序能提供給我們出錯(cuò)的信息,這樣用戶就能夠很快的找出具體的出錯(cuò)原因,以便尋找合理的途徑去解決它。 錯(cuò)誤處理需求所有的應(yīng)用程序在運(yùn)行過(guò)程中都會(huì)出現(xiàn)出錯(cuò)的情況,這種錯(cuò)誤可能來(lái)自于程序本身的BUG也可能是用戶操作的失誤所造成的。 客戶端性能需求客戶端只需要連接到服務(wù)器便可以進(jìn)行任務(wù)的處理工作,因此客戶端的主要性能要求為圖形界面運(yùn)行的穩(wěn)定性和對(duì)出錯(cuò)信息的及時(shí)反映。服務(wù)器模型一般分為循環(huán)服務(wù)器和并發(fā)服務(wù)器,循環(huán)服務(wù)器一次只能處理一個(gè)連接,也就是說(shuō)同一時(shí)間只能由一個(gè)用戶連接到服務(wù)器進(jìn)行消息處理,這種情況是不被允許的。應(yīng)該具有易用、美觀的圖形界面。服務(wù)器端可以保存用戶的信息。申請(qǐng)新用戶的功能。對(duì)需求的深入理解是開發(fā)工作獲得成功的前提條件,它對(duì)目標(biāo)項(xiàng)目提出完整、準(zhǔn)確、清晰、具體的要求。由于設(shè)計(jì)該軟件的主要目的是深入的學(xué)習(xí)Linux平臺(tái)上應(yīng)用程序的編寫方法,本系統(tǒng)將采用GNU的理論方法進(jìn)行開發(fā)。 本章小結(jié)隨著計(jì)算機(jī)應(yīng)用技術(shù)的日益普及,網(wǎng)絡(luò)也遍及到我們生活的每個(gè)角落,很好的利用這人資源,將為我們的工作和學(xué)習(xí)帶來(lái)極大的方便和提高工作效率。那樣用戶可以試著修正某個(gè)bug引起的問(wèn)題,然后繼續(xù)查找另一個(gè)bug。當(dāng)程序停止時(shí),讓用戶檢查發(fā)生了什么。運(yùn)行程序,設(shè)置所有的能影響程序運(yùn)行的東西。 調(diào)試器GDB能讓你觀察另一個(gè)程序在執(zhí)行時(shí)的內(nèi)部活動(dòng),或程序出錯(cuò)時(shí)發(fā)生了什么。Linux系統(tǒng)下的gcc(GNU C Compiler)是GNU推出的功能強(qiáng)大、性能優(yōu)越的多平臺(tái)編譯器,是GNU的代表作品之一。因?yàn)镚tk+ 和Gnome是用C語(yǔ)言編寫的,所以在開發(fā)Linux下的GUI程序時(shí)使用C語(yǔ)言是非常方便的。 編程語(yǔ)言和編程工具簡(jiǎn)介因?yàn)镃語(yǔ)言是平臺(tái)適應(yīng)性最強(qiáng)的語(yǔ)言,差不多每種平臺(tái)上都會(huì)有一個(gè)C編譯器。這種通過(guò)XML對(duì)界面進(jìn)行描述的特性極大地增強(qiáng)了程序的靈活性,界面的設(shè)計(jì)與代碼的編寫可由相關(guān)的人員進(jìn)行。另一方面,有另一個(gè)工具(glade)可以用來(lái)把這些XML文件直接生成相應(yīng)的Gtk+/Gtkmm代碼。它向用戶提供可視化的界面設(shè)計(jì)環(huán)境,并以XML文件的格式進(jìn)行保存。Gnome的開發(fā)架構(gòu)包含以下一些內(nèi)容:1. 非Gnome 庫(kù):2. Gnome庫(kù):3. 其他庫(kù)這些庫(kù)一般被使用在Gnome應(yīng)用程序中,但它不是Gnomelibs 專屬的部分。 Gnome的開發(fā)結(jié)構(gòu)簡(jiǎn)介只使用Gtk+ 構(gòu)件
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1