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

正文內(nèi)容

基于tcpip的網(wǎng)絡(luò)聊天工具的設(shè)計與實(shí)現(xiàn)—計算機(jī)畢業(yè)設(shè)計-在線瀏覽

2025-01-26 16:38本頁面
  

【正文】 塊的實(shí)現(xiàn) ............................................................................. 11 二人私聊功能模塊的實(shí)現(xiàn) ...................................................... 錯誤 !未定義書簽。 4 結(jié)束語 ........................................................................................................................ 15 7 致謝 ........................................................................................................................... 15 參考文獻(xiàn) ........................................................................................................................ 16 1 引言 Inter上的聊天室一向是一個吸引人的地方,多用 C語言或是 web網(wǎng)絡(luò)語言進(jìn)行設(shè)計。 TCP是有連接協(xié)議.它要求計算機(jī)進(jìn)行對話時必須先建立連接。 UDP是無連接協(xié)議 。要進(jìn)行實(shí)時會話。本程序采用的協(xié)議就是 TCP協(xié)議。 TCP 協(xié)議屬于 “ 面向連接 ,可靠傳輸 ”的類型 , 面向連接的傳輸意味著在進(jìn)行通信以前 , 需要在兩個系統(tǒng)之間建立邏輯連接 , 在每個 數(shù)據(jù)傳輸?shù)倪^程中都需要進(jìn)行應(yīng)答以保證數(shù)據(jù)包的完整 , 這種方法可以保證數(shù)據(jù)傳輸?shù)目煽啃?,但所需的網(wǎng)絡(luò)開銷較大; UDP 協(xié)議屬于 “ 面向無連接 , 不可靠傳輸 ”的類型 , 該協(xié)議只負(fù)責(zé)接收和傳送上層協(xié)議傳遞的消息 , 它本身不做任何的檢測、修改與應(yīng)答 , 網(wǎng)絡(luò)開銷一般要小于 TCP協(xié)議。在 Windows 環(huán)境下開發(fā)網(wǎng)絡(luò)應(yīng)用程序 , 通常都是使用 Microsoft的網(wǎng)絡(luò)編程接口 , 即 Windows 套接字 Windows Socket( 簡稱Winsock), 它包含在 中的一組 API 中 ,用于在網(wǎng)絡(luò)上傳輸數(shù)據(jù)和交換信息 , 編程人員需要熟悉和掌握相關(guān)的網(wǎng)絡(luò)協(xié)議、系統(tǒng)的底層知識以及網(wǎng)絡(luò)軟硬件技術(shù) , 因而 Winsock 編程相當(dāng)復(fù)雜。 網(wǎng)絡(luò)聊天工具的特性 (1)多功 能。 (2)超時空。這種散點(diǎn)式的人際傳播對于整個組織機(jī)構(gòu)的健康運(yùn)作有著不可低估的作用。網(wǎng)絡(luò)聊天接近于現(xiàn)實(shí)生活的最大量交流 ,是一種面對面的共時態(tài)的直接交流。可以通過留言,即使對方不在線,也可以在上線的同時第一時間收到信息。 (4)平等性。正是這些特性,可以使大學(xué)生暫時掩蓋自身任何的缺點(diǎn)和不足,可以擺脫現(xiàn)實(shí)交往中容易產(chǎn)生的各種矛盾,更不必顧及輿論的壓力而使得師生在交流過程中受到更少的束縛,最終使大學(xué)生在虛擬的網(wǎng)絡(luò)中能夠更輕松地面對友 (愛 )情,交往需求在網(wǎng)絡(luò)中得到充分的滿足。網(wǎng)絡(luò)的距離掩蓋了真實(shí)的缺點(diǎn),容易產(chǎn)生美感。 完成的功能 本次畢業(yè)設(shè)計 從實(shí)際工程應(yīng)用角度出發(fā) ,以計算機(jī)網(wǎng)絡(luò)原理為指導(dǎo) ,結(jié)合當(dāng)前網(wǎng)絡(luò)中的一些常用技術(shù) ,編程實(shí)現(xiàn)基于 TCP/IP 的網(wǎng)絡(luò)聊天工具 ,該聊天工具具有聊天室聊天、廣播聊天、二人私聊以及文件傳輸功能 的聊天工具網(wǎng)上聊天 版 。 2) 客戶端操作,用戶登錄,進(jìn)入聊天室。 4) 服 務(wù)端操作,顯示所有在線用戶,選擇某用戶后可以進(jìn)行刪除操作 5) 系統(tǒng)退出。 技術(shù)分析 Socket 編程的相關(guān)知識與技術(shù) Socket 進(jìn)行網(wǎng)絡(luò)通信有兩種主要的方式。在這種方式下 , 兩個應(yīng)用程序之間先要建立一種虛擬的連接。其特點(diǎn)是通信可靠 , 對數(shù)據(jù)有校驗和重發(fā)的機(jī)制 , 通常用作數(shù)據(jù)文件的傳輸 , 如 FTP、 TELNET等。數(shù)據(jù)報文方式由于取消了重發(fā)校驗機(jī)制 ,能夠達(dá)到較高的通信速率 , 可以用作對數(shù)據(jù)可靠性要求不高的通信 , 如實(shí)時的語音、圖像轉(zhuǎn)送、廣播消息等。在這種類型的 Socket 工作過程中 ,必須首先啟動服務(wù)器端 ,通過調(diào)用socket()函數(shù)建立一個 socket 對象 , 然后調(diào)用 bind()函數(shù)將該 socket對象和本地網(wǎng)絡(luò)地址綁定到一起 ,再調(diào)用 listen()函數(shù)使該 socket對象處于偵聽狀態(tài) ,并規(guī)定它的最大請求的數(shù)量 ; 之后要 — 直等到客戶機(jī)有連接請求的時候服務(wù)器才會再次被激活 ; 收到客戶機(jī)請求以后 , 服務(wù)器調(diào)用 accept()函數(shù)來決定是否接受該連接 。 連接一旦建立 , 客戶機(jī)和服務(wù)器之間就可以通過調(diào)用基本的網(wǎng)絡(luò) I/O 函數(shù)來發(fā)送和接收數(shù)據(jù) 。在網(wǎng)絡(luò)通信中 , 由于網(wǎng)絡(luò)擁擠或一次發(fā)送的數(shù)據(jù)量過大等原因 , 經(jīng)常會發(fā)生交換 的數(shù)據(jù)在短時間內(nèi)不能傳送完、收發(fā)數(shù)據(jù)的函數(shù)不能返回的現(xiàn)象 , 這種現(xiàn)象叫阻塞。在阻塞方式下 , 收發(fā)數(shù)據(jù)的函數(shù)在被調(diào)用后一直要到傳送完畢或者出錯才能返回。在 Windows 系統(tǒng)中 , 如果一個函數(shù)長時間沒有返回值 , 系統(tǒng)就很難為其他的程序分配出運(yùn)行時間 , 常見的現(xiàn)象就是對輸入沒有響應(yīng) , 刷屏緩慢 , 系統(tǒng)反應(yīng)遲鈍等。 TCP/IP 協(xié)議 介紹 TCP/IP 協(xié)議并不完全符合 OSI 的七層參考模型。該模型的目的是使各種硬件在相同的層次上相互通信。而 TCP/IP 通訊協(xié)議采用了 4 層的層級結(jié)構(gòu),每一層都呼叫它的下一層所提供的網(wǎng)絡(luò)來完成自己的需求。 傳輸層:在此層中,它提供了節(jié)點(diǎn)間的數(shù)據(jù)傳送服務(wù),如傳輸控制協(xié)議( TCP)、用戶數(shù)據(jù)報協(xié)議( UDP)等, TCP 和 UDP 給數(shù)據(jù)包加入傳輸數(shù)據(jù)并把它傳輸?shù)较乱粚又校@一層負(fù)責(zé)傳送數(shù)據(jù),并且確定數(shù)據(jù)已被送達(dá)并接收。 網(wǎng)絡(luò)接口層:對實(shí)際的網(wǎng)絡(luò)媒體的管理,定義如何使用實(shí)際網(wǎng)絡(luò)(如 Ether、 Serial Line等)來傳送數(shù)據(jù)。 VC++是 Windows 平臺上的 C++編程環(huán)境,學(xué)習(xí) VC 要了解很多 Windows 平臺的特性并且還要掌握 MFC、 ATL、 COM 等的知識,難度比較大。 VC 作為一個主流的開發(fā)平臺一直深受編程愛好者的喜愛,但是 很多人卻對它的入門感到難于上青天,究其原因主要是大家對他錯誤的認(rèn)識造成的,嚴(yán)格的來說 VC++不是門語言,雖然它和 C++之間有密切的關(guān)系 ,如果形象點(diǎn)比喻的話,可以 C++看作為一種 “工業(yè)標(biāo)準(zhǔn) ”,而 VC++則是某種操作系統(tǒng)平臺下的 “廠商標(biāo)準(zhǔn) ”,而 “廠商標(biāo)準(zhǔn) ”是在遵循 “工業(yè)標(biāo)準(zhǔn) ”的前提下擴(kuò)展而來的。 開發(fā)及運(yùn)行環(huán)境 硬件平臺: 1) CPU: P4 。 軟件平臺: 1) 操作系統(tǒng): Windows XP/ Windows 2020。 圖 1 面向連接的 Socket 工作流程圖 系統(tǒng)穩(wěn)定性:在設(shè)計該系統(tǒng)時,很重要的一個問題就是系統(tǒng)的長期穩(wěn)定運(yùn)行,因為客戶端可能很多個,考慮到系統(tǒng)的運(yùn)行環(huán)境等條件,必須從系統(tǒng)分析的高度給與足夠重視,保證服務(wù)器能夠較長時間的運(yùn)行 系統(tǒng)健壯性:系統(tǒng)需要長期穩(wěn)定地運(yùn)行,而用戶在日常的工作中要進(jìn)行各種各樣的操作,難免會產(chǎn)生各種各樣的誤操作和錯誤,這就打破了本系統(tǒng)的正常運(yùn)行流程,可能導(dǎo)致預(yù)想不到的后果。 良好的適應(yīng)性:系統(tǒng)必須具有良好的擴(kuò)展能力和修改方便的特點(diǎn),以適應(yīng)不同的變化。 界面友好:用戶界面是聊天工具與主要環(huán)節(jié),所以,應(yīng)充分考慮用戶的習(xí)慣和喜好,以方便用戶使用為原則。廣播聊天、聊天室聊天、二人私聊、文件傳輸四個功能。采用服務(wù)器與客戶端模式。服務(wù)器端連接 過程簡化為: ① 設(shè)置連接所用的端口 ② 開始監(jiān)聽此端口 ③ 接到請求后建立連接 ④ 可以發(fā)送和接收數(shù)據(jù) ⑤ 不用了就關(guān)閉 Socket連接 。 MFC Windows Socket 類 包括 CAsyncSocket 和 CSocket 類 。 其次, CSocket 類是 CAsyncSocket 類的派生類 , 它提供了對通過Carchive 對象使用套接字工作的更高級抽象。更加重要的是 CSocket 和 Carchive 類提供了對于同步操作 Carchive 對象十分重要的阻塞功能 , 且 CSocket 通過與 CSocketFile 和 Carchive 一起使用來管理對象數(shù)據(jù)的發(fā)送和接收 , 使發(fā)送數(shù)據(jù)和操作變得簡單明了 系統(tǒng)功能設(shè)計 客戶端 功能 程序設(shè)計 首先介紹客戶端的用戶登錄窗體,輸入用戶名和服務(wù)器 ip 地址后進(jìn)入聊天室。 圖 4 功能及模塊實(shí)現(xiàn)窗口 圖 4 中聊天對象下拉框中,包括所有人選項和登陸某某用戶名的 下拉框選項,如下圖 5, 圖 5 選擇用戶下拉框 點(diǎn)擊文件傳輸按鈕后,在文件傳輸對話框中會顯示相應(yīng)的傳輸文件,只要雙擊你所需要的文件,選擇相應(yīng)的存儲路徑后即可存儲文件。 本實(shí)驗采用 VS 2020 為平臺利用 VC++開發(fā)語言進(jìn) 行程序編寫。派生類 CListeningSocket的回調(diào)函數(shù) OnAccpet()與客戶端建立套接字層次的連接。 啟動服務(wù)端,顯示服務(wù)端界面: 圖 6 用戶管理界面 打開客戶端,顯示客戶端登陸界面: 從名稱的下拉列表框中選擇登錄的用戶,單擊確定,進(jìn)入該用戶聊天的界面,同時服務(wù)端也會顯示出該用戶的進(jìn)入信息: 在聊天對象中,選擇所有人,在聊天信息中,輸入信息,單擊發(fā)送信息。 ASSERT_VALID(pDoc)。 GetDlgItem(IDC_TEXT)GetWindowText(strText)。 if(strText==) return。 int j=()。 pDoc=ll。 pDoc=to。 else pDoc=FALSE。 BYTE i1=GetRValue(pDocclr)。 BYTE i3=GetBValue(pDocclr)。 pDocSendMsg()。 GetDlgItem(IDC_TEXT)SetWindowText(strText)。這時信息只顯示在聊天人的客戶端中,而在其他客戶端,并不顯示該信息。 Socket 通信在 Windows 中以排隊形式由操作系統(tǒng)進(jìn)行處理 , 基本方式是請求和應(yīng)答 , 而且接收方和發(fā)送方必須相互協(xié)同工作 ,否則就會造成數(shù)據(jù)丟失。 另外 , 對于較大的文件 , 應(yīng)該分批傳輸 ,一般每次 1至 4KB為宜 ,以保證數(shù)據(jù)傳輸?shù)姆€(wěn) 定性 , 同時也不至于過多地占用系統(tǒng)資源。 int iSel = pListViewiItem。 CString strFileName = (iSel, 0)。 if(() != IDOK) return。 CFile file。 if(!bOpen) { MessageBox(文件創(chuàng)建或打開失?。≌埓_認(rèn)路徑再重試! )。 } ()。 = FILEDATA。 = 0。 strcpy(, (iSel, 5))。 char sStartTick[20]。 (iSel, 6, sStartTick)。 *pResult = 0。因而各種聊天服務(wù)備受用戶青睞 , 在這方面的開發(fā)與應(yīng)用也較多 [1], 聊天服務(wù)也成為互聯(lián)網(wǎng)提供的重要服務(wù)之一。進(jìn)入 20 世紀(jì) 90 年代后 , 隨著計算機(jī)和網(wǎng)絡(luò)技術(shù)的發(fā)展 ,很多數(shù)據(jù)處理系統(tǒng)都采用開放系統(tǒng)結(jié)構(gòu)的客戶機(jī) /服務(wù)器 (Client/Server)網(wǎng)絡(luò)模型 ,即客戶機(jī)向服務(wù)器提交請求 ,服務(wù)器對請求做相應(yīng)的處理兵執(zhí)行被請求的任務(wù) ,然后將結(jié)構(gòu)返回給客戶機(jī)??蛻魴C(jī) /服務(wù)器模型工作時要求有一套為客戶機(jī)和服務(wù)器所共識的慣例來保證服務(wù)能夠被提供 ( 或被接受 ) , 這一套慣例包含了一套協(xié)議 , 它必須在通信的兩頭都被實(shí)現(xiàn)。在對稱的協(xié)議中每一方都有可能扮演主從角色 。一個對稱協(xié)議地例子是 Inter中用于終端仿真地 Tel, 而非對稱 協(xié)議地例子是 Inter 中的。一個服務(wù)程序通常在一個眾所周知地地址監(jiān)聽客戶對服務(wù)地請求 , 也就是說 , 服務(wù)進(jìn)程一直處于休眠狀態(tài) , 直到一個客戶對這個服務(wù)地址提出連接請求。 本文以 Visual C++的 MFC(微軟基本類庫 )作為基本的開發(fā)基礎(chǔ) , 使用 Socket 套接字作為開發(fā)的應(yīng)用程序開發(fā)模型 , 完成了網(wǎng)絡(luò)在線聊天系統(tǒng)的設(shè)計及實(shí)現(xiàn)過程 , 通過測試表明該系統(tǒng)可以方便的建立連接 , 斷開連接 , 實(shí)現(xiàn)網(wǎng)絡(luò)在線聊天系統(tǒng)的在線好友查找 , 發(fā)送消息和接收消息等功能。 7 致謝 我的作品 基于 TCP/IP 的網(wǎng)絡(luò)聊天工具的設(shè)計與實(shí)現(xiàn) ,達(dá)到了我預(yù)先的效果。我的論文的完成,離不開這位老師的指導(dǎo)與關(guān)愛。 參考文獻(xiàn) [1] Douglas E Comer , David L Stevens. Inter Working With TCP/ IP Vol Ⅱ :Design , Implementation and Internal [M] . 張娟 ,等譯 . 北京 :電子工業(yè)出版社 ,1998. [2] 李鵬 . 計算機(jī)通信技術(shù)及其程序設(shè)計 [M] . 西安 :西安電子科技大學(xué)出版社 ,1998. [3] 黃超 . Windows 網(wǎng)絡(luò)編程 [M] . 北京 :人民郵電出版社 ,2020 [4] 劉運(yùn)強(qiáng) ,王匯源 1Socket 和多線程在
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1