【正文】
果發(fā)送程序沒有收到這樣一個確認(rèn)信息,程序?qū)⒆詣又匦掳l(fā)送此報文,直到得到應(yīng)答信息為止。可將不可靠數(shù)據(jù)傳輸比作沒有返回地址的信件。連接的接收方可以按每次 20 字節(jié)讀數(shù)據(jù)(要讀 5 次)。如果你在同一天給同一個人郵寄兩封信 ,你無法知道那個人先本科生畢業(yè)設(shè)計(論文) 13 收到那封信。 PC機(jī)給它的端口命名和編號。通用口分配是特定應(yīng)用程序廣泛使用的一個協(xié)議端 口。提供了一個漂 亮的界面。兩個函數(shù)的適應(yīng)情況, SendData 函數(shù),適用于需要直接發(fā)送數(shù)據(jù)的場合,不需要回應(yīng)。在 SendDataInThread 函數(shù)中,調(diào)用 SendData函數(shù)進(jìn)行發(fā)送數(shù)據(jù)。 服務(wù)器 應(yīng)用程序類設(shè)計 CServerApp 類, 定義了服務(wù)器全局的數(shù)據(jù)結(jié)構(gòu), class CServerApp : public CWinApp { public: void SaveMyProfileSettings()。 //標(biāo)志服務(wù)是否已經(jīng)開啟 UserOnline* m_pUsers。 //數(shù)據(jù)源的字符串 CString m_strDataSUID。 afx_msg void OnUserOnline()。 //用戶的在線狀態(tài) (0,1,2 分別為離線,在線,隱身 ) int m_nNumberHeadBmp。存放廣播消息的數(shù)組 int m_nCurBroadcast。 服務(wù)器 IP 地址的字符串 DWORD m_uServerIP。 //包括客戶端的初始化和配置信息的讀取等 virtual int ExitInstance()。 afx_msg void OnSendBroadcast()。如下圖 42 所示: 圖 42 ODBC 數(shù)據(jù)源管理器 本科生畢業(yè)設(shè)計(論文) 22 3.點擊“ Microsoft Accss Driver(*.mdb)”然后點擊“完成”,點擊“完成”后,出現(xiàn)“ ODBC Microsoft Accss 安裝”界面,輸入數(shù)據(jù)源名“ IDServer” ,點擊“完成”即可。 具體實現(xiàn) 在用戶要登錄聊天系統(tǒng)時,系統(tǒng) 會進(jìn)入如下圖所示的用戶登錄界面,在顯示的信息中包括用戶號碼和密碼,用戶需正確輸入個人號碼和密碼才能進(jìn)入下一界面。對已經(jīng)查找到的在線用戶單擊右鍵同樣會出現(xiàn)“加為好友”和“詳細(xì)資料”項,執(zhí)行結(jié)果同查找用戶執(zhí)行結(jié)果。通過編譯后,可直接運行程序。 本 課題 主要做了以下工作: 。 。在今后的 工作生活中,我將會以他為榜樣,向著 郭老師指出的方向和高度 努力 ,使我對計算機(jī)軟件開發(fā)領(lǐng)域有了一個新的、更高層次的認(rèn)識。 ,響應(yīng)從服務(wù)器發(fā)來的數(shù)據(jù),是在主線程里執(zhí)行的,所以,當(dāng)接受數(shù)據(jù)忙時,就會出現(xiàn)沒有響應(yīng)的情況。而客戶端的設(shè)計有很多都需要完善。 如圖 421 422 所示: 圖 421 用戶登錄 本科生畢業(yè)設(shè)計(論文) 30 圖 422 服務(wù)器驗證 如需要驗證,則進(jìn)入服務(wù)器驗證,驗證服務(wù)器地址和端口號 是否正確,如不需要,則退出 登錄。 如下圖 417 418 所示: 圖 417 用戶詳細(xì)信息界面 圖 418 用戶修改密碼界面 正常聊天模塊 在主界面中,在好友圖標(biāo)處左鍵單擊即可出現(xiàn)收發(fā)消息界面,可方便向該好友發(fā)送消息。 如下圖 410 所示: 圖 410 按 ID 號查找用戶功能號 右鍵單擊所查找的用戶,即可出現(xiàn)“加為好友”和“詳細(xì)資料”項。首先打開您所安裝的文件夾,點擊“ ”文件,打開服務(wù)器,單擊“啟動服務(wù)器”即可啟動服務(wù)器。 //調(diào)用查找用戶的對話框 afx_msg void OnSendFile()。 //從磁盤中讀取用戶信息 本科生畢業(yè)設(shè)計(論文) 20 BOOL LoadFaceBmp()。 //用戶頭像的大圖標(biāo)列表 CImageList m_imaSmall //用戶頭像的小圖標(biāo)列表 CImageListm_imaHead。 //底層通訊類的實例對象 DWORD m_uCurrentUserID。 //存儲好友的在線狀態(tài)及相關(guān)信息 CArrayFriendState*,FriendState*m_aStrangerState。 //處理程序的退出,執(zhí)行程序中必要的清理工作 afx_msg void OnUpdateUserOnline(CCmdUI* pCmdUI)。 //服務(wù)器程序的初始化部分 afx_msg void OnAppAbout()。 //當(dāng)前在線的人數(shù) int m_nMaxUserId。 //服務(wù)器端的上層 socket 接口 CArrayDWORD,DWORDm_anPort。在數(shù)據(jù)的打包過程中,對字符串的打包原理為:先存入串長度,再存入串。 因為客戶端可以多線程的發(fā)送數(shù)據(jù),有一個請求,就建立一個線程進(jìn)行處理。 因為服務(wù)器是多線程的發(fā)送數(shù)據(jù),有一個請求,就建 立一個線程進(jìn)行處理。 本科生畢業(yè)設(shè)計(論文) 14 第 三 章 詳細(xì) 設(shè)計 本章將論述軟件系統(tǒng)的面向?qū)ο笤O(shè)計過程。成千個 PC 機(jī)應(yīng)用程序使用此方案。 IP 數(shù)據(jù)報保存目的和源 IP 地址,同樣傳輸協(xié)議也保存源和目的端口號。相比之下,傳輸?shù)酵荒康牡氐亩鄠€數(shù)據(jù)報可能不會按發(fā)送順序到達(dá)。協(xié)議不管要求發(fā)送或接收數(shù)據(jù)的長度和傳送數(shù)目,只是將數(shù)據(jù)看作一個簡單的字節(jié)串流。 傳輸控制協(xié)議 TCP是一個使用校驗和 確認(rèn)信息以及其它可靠數(shù)據(jù)傳輸技術(shù)的可靠協(xié)議。可靠的協(xié)議意味著當(dāng)數(shù)據(jù)通過協(xié)議傳遞時,協(xié)議保證數(shù)據(jù)正確傳輸。 TCP 傳輸控制協(xié)議( Transmission Control Protocol),負(fù)責(zé) 在應(yīng)用程序之間傳遞數(shù)據(jù)。無連接客戶程序使用數(shù)據(jù)報發(fā)送網(wǎng)絡(luò)服務(wù)請求,它不建立點到點連接。也就是說,程序告訴 socket執(zhí)行體使用哪-個協(xié)議端口進(jìn)行數(shù)據(jù)傳送。但是,也可以設(shè)計同時完成這兩種功能的程序,例如,一些服務(wù)器程序如果不能完成一個服務(wù)請求時,它將轉(zhuǎn)而充當(dāng)客戶程序,向其它服務(wù)器程序請求信息??偣灿?三 個表: 用戶信息表( Users)好友信息表( Friends)離線消息表( OffMsg) 表 21 用戶信息表( Users) 字段名稱 說明 長度 UserId(主鍵) 自動編號 4 字節(jié)長整形 Id 用戶帳號 4 字節(jié)長整形 Photoid 用戶的圖象編號 4 字節(jié)長整形 password 用戶登陸的密碼 字符串 name 用戶的姓名 字符串 sex 用戶的性別 單字節(jié)整形 0 男 1 女 2 未知 age 用戶的年齡 字符串 (為了適應(yīng)不 愿填寫此項的人) canbeadd 能否被人加為好友 單字節(jié)整形 (0,1,2 不能被加入 ,允許被任何人加入 ,需要身份驗證 ) 自己賬號 朋友賬號自動編號好友信息離線消息自動編號 接收者賬號 發(fā)送者賬號 接收時間本科生畢業(yè)設(shè)計(論文) 9 電子信箱 字符串 homepage 個人主頁 字符串 address 地址 字符串 phone 電話 字符串 fax 傳真 字符串 department 部門 字符串 description 個人簡介 字符串 表 22 好友信息表( Friends) 字段名稱 說明 長度 Num(主鍵) 自動編號 4 字節(jié)長整形 MyId 自己帳號 4 字節(jié)長整形 FriendId 朋友帳號 4 字節(jié)長整形 表 23 離線消息表( OffMsg) 字段名稱 說明 長度 MsgId(主鍵) 自動編號 4 字節(jié)長整形 RecvId 接受者 帳號 4 字節(jié)長整形 SenderId 發(fā)送者 帳號 4 字節(jié)長整形 RecvTime 接受 時間 4 字節(jié)長整形 nIndex 發(fā)送消息 類型 4 字節(jié)長整形 Msg 發(fā)送 消息 備注類型 客戶 /服務(wù)器程序 設(shè)計 C/S 模型也是一種網(wǎng)絡(luò)模型,但與前述的模型不同,它并不是定義了網(wǎng)絡(luò)的層次結(jié)構(gòu),而是描述了一種網(wǎng)絡(luò)程序運行的方式。但 ER 模型只能說明實體間語義的聯(lián)系,不能進(jìn)一步說明詳細(xì)的數(shù)據(jù)結(jié)構(gòu),它只是數(shù)據(jù)庫設(shè)計的第一步?,F(xiàn)實世界的事物反映到人的頭腦中,人的大腦對它有個認(rèn)識過程,經(jīng)過分析(選擇、命名、分類等)進(jìn)入信息世界。 客戶端主要是提供給用戶一個友好的用戶界面,方便用戶操作,客戶端主要負(fù)責(zé)從服務(wù)器上得到數(shù)據(jù)后,顯示給用戶。 服務(wù)器端主要是為用戶存儲必要的信息,協(xié)調(diào)用戶之間 的通訊,服務(wù)器端的設(shè)計,主要在功能上面。因為使用 UDP 協(xié)議進(jìn)行通訊,所以要自己控制其可靠性。 查看好友信息 。 提供查看在線的人的功能 。語音聊天更為經(jīng)濟(jì)快捷,單位時間傳遞的信息量也更大。電視雖然對人類消閑時間的爭奪戰(zhàn)中勝出,但它卻不可能滿足人類所有的需要,尤其是傳統(tǒng)聊天能夠滿足的那些需要。梁實秋的 “ 雅舍小品 ” 里有專文談聊天的好處??梢员4嬗脩舻膫€人信息或介紹,供人查看。 面向?qū)ο蠓椒▽W(xué)是一種全新的軟件工程方法,其出發(fā)點和基本原則是盡可能模 擬人類習(xí)慣的思維方式,把構(gòu)成客觀世界的實體抽象為對象。 “ 網(wǎng)聊 ” 借助網(wǎng)絡(luò)這種現(xiàn)代通訊手段在一定程度上恢復(fù)甚至拓展了傳統(tǒng)聊天在人們生活中失去的地盤。 雖然說,現(xiàn)在這個軟件已經(jīng)有公司把它開發(fā)出來了,我再做也不一定有新意,也未必可以做得更好,但作為畢業(yè)設(shè)計,也算是對我能力的一個考驗和這四年來 我學(xué)習(xí)知識的一個檢查。 關(guān)鍵詞 : 套接字 客戶機(jī) 服務(wù)器 網(wǎng)絡(luò)聊天 本科生畢業(yè)設(shè)計(論文) ABSTRACT The SOCKET connects in the API that the Windows carries on the work correspondence plait distance, is also the fact standard that the work of Windows weaves the distance. The most in mon use project would be the customer/server model in work weave distance. This text puts forward to carry out the Inter with the WINSOCK under customer/server model in the project of the familiar chat room software. This procedure is an according to customer/server mode of the work chat procedure, mainly used for the test to face to the copular socket plait distance. Use the Virtual C++ plaits write. Test for the convenience, the procedure adoption server (the server carry) and client (the customer carry) s unite as one the mode, using the simple and direct convenience. What to need to be no tice is this procedure the customer carry the server carry to unite as one of mode and obtain this machine IP address and au to be the customer debarkation ID the calculator automatically of design test for the convenience only, well proper and mercial, so need to carry on the improvement in the mercial stage. This article was mainly has made the quite detailed introduction to this software server end design, and has carried on the preliminary development to the server end. But the client side design has many needs to consummate. The client side is to the user the use, from convenient and on artistic, but also has the place which many needs to consummate. Moreover, as a resu