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

正文內(nèi)容

通信工程畢業(yè)設(shè)計(jì)_基于socket的即時(shí)通訊軟(編輯修改稿)

2025-01-08 16:55 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 m Protocol),提供給用戶進(jìn)程的無(wú)連接協(xié)議,也負(fù)責(zé)在應(yīng)用程序之間無(wú)連接傳遞數(shù)據(jù),但不執(zhí)行正確性檢查。 ICMP 互連網(wǎng)控制報(bào)文協(xié)議( Inter Control Message Protocol),處理主機(jī)間的差錯(cuò)和傳送控制。ARP 地址解析協(xié)議( Address Resolution Protocol),負(fù)責(zé)將網(wǎng)絡(luò)層地址轉(zhuǎn)換成鏈路層地址。RARP 反向地址解析協(xié)議( Reverse Address Resolution Protocol),負(fù)責(zé)將鏈路層 地址轉(zhuǎn)換成網(wǎng)絡(luò)層地址。 TCP/IP 協(xié)議的核心是傳輸層協(xié)議( TCP、 UDP)、網(wǎng)絡(luò)層協(xié)議( IP)和物理接口層,這三層通常在操作系統(tǒng)的內(nèi)核中實(shí)現(xiàn)。 TCP/IP 網(wǎng)絡(luò)環(huán)境下的應(yīng)用程序設(shè)計(jì)是通過(guò)網(wǎng)絡(luò)系統(tǒng)編程界面 Socket 實(shí)現(xiàn)的, Socket 提供應(yīng)用程序與系統(tǒng)內(nèi)核之間的網(wǎng)絡(luò)編程接口。協(xié)議可以是可靠的可以是不可靠的??煽康膮f(xié)議意味著當(dāng)數(shù)據(jù)通過(guò)協(xié)議傳遞時(shí),協(xié)議保證數(shù)據(jù)正確傳輸??煽總鬏敯◣讉€(gè)特征。首先,為了確保數(shù)據(jù)正確傳送,協(xié)議在通信應(yīng)用程序之間互相交換確認(rèn)信息。也就是說(shuō),程序每次發(fā)送一個(gè)報(bào)文時(shí),都期望對(duì)方發(fā)送一個(gè)相 當(dāng)于說(shuō): “我得到這個(gè)報(bào)文 ”的確認(rèn)信息。如果發(fā)送程序沒有收到這樣一個(gè)確認(rèn)信息,程序?qū)⒆詣?dòng)重新發(fā)送此報(bào)文,直到得到應(yīng)答信息為止。其次,為了確保傳輸?shù)臄?shù)據(jù)有效,可靠協(xié)議在每次傳輸時(shí),都包含一個(gè)或更多的校驗(yàn)和( CRC)。接收計(jì)算機(jī)重新計(jì)算校驗(yàn)和,與收到的校驗(yàn)和進(jìn)行比較。如果不匹配,就表明在傳輸過(guò)程中發(fā)生了錯(cuò)誤。 傳輸控制協(xié)議 TCP 是一個(gè)使用校驗(yàn)和、確認(rèn)信息以及其它可靠數(shù)據(jù)傳輸技術(shù)的可靠協(xié)議。相比之下,不可靠協(xié)議不能確保數(shù)據(jù)正確傳輸。協(xié)議試圖傳輸數(shù)據(jù),但不保證成功。而且,不可靠協(xié)議在傳輸失敗后,并不通知發(fā)送方應(yīng)用程序 ??蓪⒉豢煽繑?shù)據(jù)傳輸比作沒有返回地址的信件。如果發(fā)送地址是錯(cuò)誤的,由于郵遞系統(tǒng)不能將信退回給你,所以你就不知道信件有沒有送到。即使發(fā)送地址是正確的,也不能保證郵遞系統(tǒng)不丟失你的信件 [8]。 TCP/ IP 協(xié)議組中存在的兩個(gè)基本數(shù)據(jù)服務(wù)是:字節(jié)流服務(wù)和數(shù)據(jù)報(bào)服務(wù)。使用字節(jié)流的協(xié)議將信息看作一串字節(jié)流進(jìn)行傳輸。協(xié)議不管要求發(fā)送或接收數(shù)據(jù)的長(zhǎng)度和傳送數(shù)目,只是將數(shù)據(jù)看作一個(gè)簡(jiǎn)單的字節(jié)串流。使用數(shù)據(jù)報(bào)的協(xié)議將信息視作一個(gè)獨(dú)立長(zhǎng)沙學(xué)院 畢業(yè)設(shè)計(jì) (論文 ) 6 單元進(jìn)行傳輸。協(xié)議單獨(dú)發(fā)送每個(gè)數(shù)據(jù)報(bào) ——數(shù)據(jù)報(bào)之間不相互依賴。例如,假設(shè)你使用字節(jié)流協(xié)議發(fā)送 5 個(gè)數(shù)據(jù)段(每個(gè)有 10 字節(jié))和一個(gè)包含 50 字節(jié)的數(shù)據(jù)段(總共 100字節(jié))。連接的接收方可以按每次 20 字節(jié)讀數(shù)據(jù) (要讀 5 次 )。傳輸控制協(xié)議是字節(jié)流協(xié)議。 字節(jié)流協(xié)議不關(guān)心每個(gè)數(shù)據(jù)段的長(zhǎng)度。如果應(yīng)用程序使用字節(jié)流協(xié)議發(fā)送數(shù)據(jù),則協(xié)議能夠保證連接的另一端按照發(fā)送的順序接收數(shù)據(jù)。相比之下,傳輸?shù)酵荒康牡氐亩鄠€(gè)數(shù)據(jù)報(bào)可能不會(huì)按發(fā)送順序到達(dá)。如果接收方應(yīng)用程序要求數(shù)據(jù)順序一致,應(yīng)用程序必須在數(shù)據(jù)到達(dá)后,校對(duì)這些數(shù)據(jù)。用戶數(shù)據(jù)報(bào)協(xié)議和互連網(wǎng)協(xié)議使用數(shù)據(jù)報(bào)傳輸數(shù)據(jù)。數(shù)據(jù)報(bào)類似于信件。如果你在同一天給同一個(gè)人郵寄兩封信,你無(wú) 法知道那個(gè)人先收到那封信。同樣,如果連續(xù)兩天給兩個(gè)人郵信,你也不能知道哪封信先收到。收到信的順序和發(fā)送順序可能相反。 在 TCP/IP 術(shù)語(yǔ)中,端口( Port)類似于 IP 地址, IP 地址與主機(jī)地址是相聯(lián)系的,端口和協(xié)議相聯(lián)系。 IP 數(shù)據(jù)報(bào)保存目的和源 IP 地址,同樣傳輸協(xié)議也保存源和目的端口號(hào)。如果端口這個(gè)概念對(duì)你來(lái)說(shuō)很陌生,請(qǐng)考慮計(jì)算機(jī)上的硬件端口。你可能編寫過(guò)往硬件端口送數(shù)據(jù)的程序。例如為了打印,如果沒有其它程序的話,必須向串或并端口發(fā)送數(shù)據(jù)。 PC 機(jī)給它的端口命名和編號(hào)。 例如, PC 機(jī)的并行打印端口稱為 LPTl 和 LPT2,串行端口稱為 COM1 和 COM2。在 Inter 上,網(wǎng)絡(luò)只是簡(jiǎn)單地對(duì)協(xié)議端口編號(hào)。在 PC 機(jī), LPT1 表示并行端口 1。成千的 PC 機(jī)應(yīng)用程序使用此方案。多年來(lái),程序員編寫 PC 程序時(shí)都假定 LPT1 表示并行打印端口 1。同樣,程序員將每個(gè) Inter 協(xié)議端口與一個(gè)特定的應(yīng)用程序和功能聯(lián)系在一起。 Inter 包括像 FTP、 Tel 和 Mail 這樣廣泛使用的應(yīng)用程序采用的應(yīng)用協(xié)議,在Inter 上,這些應(yīng)用程序使用一種叫做 “通用口分配 ”的端口。通用口分配是特定應(yīng)用程序廣泛使用的一個(gè)協(xié)議端口。像 PC 程序員使用打印端口 LPT1 用于打印, Inter 程序員也對(duì)具體應(yīng)用程序使用許多協(xié)議端口。例如,平凡文件傳輸協(xié)議( FTP)的通用口分配是端口號(hào) 21 的。 Tel 的通用口分配是端口號(hào) 23[8]。 客戶機(jī) /服務(wù)器模型 客戶機(jī) /服務(wù)器( C/S)模型是一種網(wǎng)絡(luò)模型,它并不是定義了網(wǎng)絡(luò)的層次結(jié)構(gòu),而是描述了一種網(wǎng)絡(luò)程序運(yùn)行的方式。 客戶機(jī) /服務(wù)器模型將網(wǎng)絡(luò)應(yīng)用程序分為客戶和服務(wù)器兩部分??蛻舴綄?duì)服務(wù)器方發(fā)送信息請(qǐng)求,服務(wù)器方對(duì)其做出相應(yīng)回答,提供服務(wù)。在 TCP/IP 網(wǎng)絡(luò)應(yīng)用中,多數(shù)網(wǎng)絡(luò)應(yīng)用程序是使用客 戶機(jī) /服務(wù)器模型設(shè)計(jì)的。服務(wù)程序通常在一個(gè)眾所周知的地址監(jiān)聽對(duì)服務(wù)的請(qǐng)求,也就是說(shuō),服務(wù)進(jìn)程一直處于休眠狀態(tài),直到一個(gè)客戶程序提出了請(qǐng)求長(zhǎng)沙學(xué)院 畢業(yè)設(shè)計(jì) (論文 ) 7 信息。此時(shí),服務(wù)程序被喚醒并且為客戶提供服務(wù),對(duì)客戶的請(qǐng)求做出適當(dāng)?shù)姆磻?yīng)。雖然基于連接的服務(wù)是設(shè)計(jì)客戶 /服務(wù)器應(yīng)用程序的標(biāo)準(zhǔn),但有些服務(wù)也是可以通過(guò)數(shù)據(jù)報(bào)Socket 提供的。 通常,網(wǎng)絡(luò)應(yīng)用程序包含兩個(gè)獨(dú)立的應(yīng)用程序:客戶程序和服務(wù)器程序。但是,也可以設(shè)計(jì)同時(shí)完成這兩種功能的程序,例如,一些服務(wù)器程序如果不能完成一個(gè)服務(wù)請(qǐng)求時(shí),它將轉(zhuǎn)而充當(dāng)客戶程序,向其它服務(wù)器程序請(qǐng)求信息 。這方面的一個(gè)典型例子就是提供 Inter 從域名到 IP 地址映射服務(wù)的 DNS 服務(wù)器。 為了充分理解 TCP/IP 協(xié)議族,必須理解幾個(gè)重要術(shù)語(yǔ)。這些術(shù)語(yǔ)指出了兩個(gè) TCP/IP傳輸協(xié)議:用戶數(shù)據(jù)包協(xié)議( UDP)和傳輸控制協(xié)議( TCP)之間的區(qū)別。這些術(shù)語(yǔ)進(jìn)一步描述了與網(wǎng)絡(luò)連接、協(xié)議可靠性以及數(shù)據(jù)服務(wù)有關(guān)的協(xié)議特性。 當(dāng)建立服務(wù)器程序時(shí),應(yīng)該將服務(wù)器程序設(shè)計(jì)成等候客戶的請(qǐng)求。你知道, TCP 傳輸層通過(guò)協(xié)議端口和應(yīng)用程序(像服務(wù)器和客戶)通信,也就是說(shuō),為了接收客戶請(qǐng)求,服務(wù)器程序必須對(duì)傳輸層的一個(gè)特定協(xié)議端口進(jìn)行偵 聽。當(dāng)服務(wù)器配置 socket 接口時(shí),它使用 bind()函數(shù)讓 Socket 執(zhí)行體登記一個(gè)協(xié)議端口。也就是說(shuō),程序告訴 Socket 執(zhí)行體使用哪一個(gè)協(xié)議端口進(jìn)行數(shù)據(jù)傳送。 Socket 執(zhí)行體接著告訴傳輸層某個(gè)特定協(xié)議端口已被使用,并將其收到的所有數(shù)據(jù)傳送給 Socket API。 使用無(wú)連接協(xié)議的程序和使用面向連接協(xié)議的服務(wù)器程序之間的主要相似之處是它們都必須對(duì)一個(gè)協(xié)議端口進(jìn)行偵聽。例如,無(wú)連接和連接服務(wù)器程序必須在協(xié)議端口偵聽客戶請(qǐng)求。同樣,由于無(wú)連接客戶程序沒有和遠(yuǎn)地主機(jī)建立直接連接,所以它也必須對(duì)協(xié)議端口進(jìn)行偵 聽,以便接收以對(duì)它服務(wù)請(qǐng)求產(chǎn)生的數(shù)據(jù)報(bào)應(yīng)答。 Socket API 中的bind()函數(shù)讓程序?qū)⒁粋€(gè)本地地址(包括主機(jī)地址和協(xié)議端口)和一個(gè) Socket 聯(lián)系起來(lái)。 下面程序行顯示了一個(gè)典型的函數(shù)調(diào)用: result= bind ( socket_handle, local_structure, socket_address, address_ length) 無(wú)連接客戶程序也對(duì)一個(gè)協(xié)議端口進(jìn)行偵聽。使用無(wú)連接協(xié)議的程序不和遠(yuǎn)地主機(jī)建立直接連接。無(wú)連接客戶程序使用數(shù)據(jù)報(bào)發(fā)送網(wǎng)絡(luò)服務(wù)請(qǐng)求,它不建立點(diǎn)到點(diǎn)連接。因此無(wú)連 接客戶程序必須在一個(gè)協(xié)議端口,對(duì)應(yīng)答數(shù)據(jù)報(bào)進(jìn)行偵聽。與服務(wù)器程序一樣,無(wú)連接客戶程序也使用 bind()函數(shù)讓 Socket 執(zhí)行體登記協(xié)議端口。也就是說(shuō),類似服務(wù)器程序,無(wú)連接客戶程序告訴 Socket 執(zhí)行體使用哪個(gè)協(xié)議端口進(jìn)行數(shù)據(jù)傳輸。 Socket執(zhí)行體處理傳輸層內(nèi) UDP 軟件模塊和客戶程序之間的接口 [9]。 長(zhǎng)沙學(xué)院 畢業(yè)設(shè)計(jì) (論文 ) 8 第 4 章 需求分析及開發(fā)方法 需求分析 一個(gè)即時(shí)通訊軟件應(yīng)提供基于 TCP/IP 網(wǎng)絡(luò)的即時(shí)消息傳送、消息廣播、實(shí)時(shí)聊天等功能。列舉如下: ( 1) 支持多賬號(hào)。 ( 2) 可以同時(shí)發(fā)送同一個(gè)消息給一個(gè)人,通過(guò)輸入對(duì)方信 息。 ( 3) 可以同時(shí)發(fā)送一個(gè)消息給所有人。 ( 4) 即使用戶不在線,也能通過(guò)服務(wù)器發(fā)送離線消息。 ( 5) 提供消息、聊天的歷史記錄,方便對(duì)信息的查看和管理。 ( 6) 提供查看在線的人的功能。 ( 7) 用戶上線通知。 ( 8) 用戶下線更新 ( 9) 有權(quán)限的人可以發(fā)系統(tǒng)廣播通知 ( 10) 查看用戶信息 ( 11) 更改個(gè)人信息 ( 12) 開機(jī)啟動(dòng)設(shè)置 ( 13) 主窗口總是浮在最上端 ( 14) 速度快,占用資源少 系統(tǒng)功能模塊 根據(jù)上述的需求分析,并針對(duì)個(gè)人所掌握的知識(shí)和自己畢業(yè)設(shè)計(jì)時(shí)間的限制,要做到面面俱到是不可能的,并考慮到作為局域網(wǎng)(校園網(wǎng))聊天工具,終端用戶數(shù)量較少,我設(shè)計(jì)的通訊軟件借鑒了 、聊天室 等即時(shí)聊天工具,聊天信息采用服務(wù)器轉(zhuǎn)發(fā)方式,只要當(dāng)前在線的用戶都可以接收到,當(dāng)然,也實(shí)現(xiàn)了兩人之間私聊的功能。包括服務(wù)器程序和客戶端程序,服務(wù)器包括聊天信息即時(shí)轉(zhuǎn)發(fā)、系統(tǒng)日志記錄、發(fā)送通知、以及數(shù)據(jù)庫(kù)的備份、還原、初始化??蛻舳司哂械顷懀?cè),修改個(gè)人信息,聊天等功能。 系統(tǒng)功能需求圖 這個(gè)即時(shí)通訊軟件系統(tǒng)包括服務(wù)器端和客戶端,服務(wù)器端有聊天記錄、系統(tǒng)設(shè)置、發(fā)布通告、數(shù)據(jù)庫(kù)備份還原初始化、置頂?shù)墓δ?,客戶端要求有登陸、注?cè)、聊天和修改查看個(gè)人信息的功能,系統(tǒng)功能的需求圖如下: 長(zhǎng)沙學(xué)院 畢業(yè)設(shè)計(jì) (論文 ) 9 圖 系統(tǒng) 功能需求圖 開發(fā)方法介紹 目前比較成熟的信息系統(tǒng)開發(fā)方法有:生命周期法、原型法、面向?qū)ο蠓ǖ取? 生命周期法: 把一個(gè)信息系統(tǒng)從其提出、分析、設(shè)計(jì)和使用,直到停止使用的整個(gè)生存期視為一個(gè)生命周期。整個(gè)生命周期劃分為五個(gè)主要工作階段:可行性分析階段、系統(tǒng)分析階段、系統(tǒng)設(shè)計(jì)階段、系統(tǒng)實(shí)施階段和系統(tǒng)運(yùn)行、維護(hù)與評(píng)價(jià)階段。通常采用結(jié)構(gòu)化系統(tǒng)分析和系統(tǒng)設(shè)計(jì)方法,自上而下分析、設(shè)計(jì)、強(qiáng)調(diào)開發(fā)過(guò)程的整體性和全局性;開發(fā)過(guò)程在時(shí)間上基本按階段進(jìn)行,任務(wù)明確;結(jié)合用戶需求進(jìn)行開發(fā);開發(fā)周期長(zhǎng),維護(hù)不方便。適用于開發(fā)需求較 明確固定的信息系統(tǒng)。 原型法: 是系統(tǒng)開發(fā)者在初步了解用戶需求的基礎(chǔ)上,開發(fā)出能實(shí)現(xiàn)系統(tǒng)基本功能的一個(gè)原型,再根據(jù)用戶對(duì)原型使用與評(píng)價(jià)的意見,提出修改方案,修改完善原型,如此反復(fù)多次,直到得到用戶滿意的最終系統(tǒng)為止。開發(fā)過(guò)程以用戶為中心,開發(fā)周期短。適用于開發(fā)需求不夠明確或不斷變化的軟件。 面向?qū)ο蠓ǎ?以類,類的繼承,聚集等概念描述客觀事物以及聯(lián)系。為管理信息系統(tǒng)的開發(fā)提供了全新的思路,面向?qū)ο蠓椒ㄒ詫?duì)象為中心。其特征主要有模塊性,繼承性和類比性,動(dòng)態(tài)連接性。 其中原型法是近幾年發(fā)展起來(lái)的一種開發(fā)方法,該方法 從一個(gè)初始信息要求的集合出發(fā),在發(fā)展中逐步完善信息系統(tǒng)。本 即時(shí)通訊 軟件采用的是原型法。 使用原型法開發(fā)大體有以下幾個(gè)步驟: ( 1) 確定系統(tǒng)需求。其中包括系統(tǒng)的應(yīng)用范圍、系統(tǒng)開發(fā)的經(jīng)費(fèi)估算等。 ( 2) 設(shè)計(jì)初始原型。包括確定需求和開發(fā)工作模型,例如屏幕格式、功能菜單、報(bào)表格式以及對(duì)關(guān)鍵數(shù)據(jù)和功能的說(shuō)明等。 長(zhǎng)沙學(xué)院 畢業(yè)設(shè)計(jì) (論文 ) 10 ( 3) 對(duì)初始原型進(jìn)行需求迭代,不斷進(jìn)行修正或改進(jìn),直至得到一個(gè)用戶滿意的原型,從而終止原型迭代過(guò)程。 ( 4) 如果需要,可寫出系統(tǒng)必要成分的嚴(yán)格、詳細(xì)的說(shuō)明。 ( 5) 原型效果考察??疾煊脩粜录尤氲男枨笮畔⒑徒M成成分的嚴(yán)格說(shuō)明信息,看其對(duì)原型 效果的影響,是否影響到原型的有效性,如果導(dǎo)致原型失敗,應(yīng)加以修正和改進(jìn)。 原型法的生命周期提供了一種完整的、靈活的、近于動(dòng)態(tài)的需求定義技術(shù)。它綜合了所有提出的必要需求,建立原型就近似于預(yù)先需求的規(guī)格說(shuō)明。對(duì)應(yīng)于原型的工作模型可以進(jìn)行必要的剪裁和組織,以便更接近目標(biāo)系統(tǒng)。它可以綜合用戶、領(lǐng)導(dǎo)和原型開發(fā)人員的各方需求 [10]。 圖 原型法工作流程圖 長(zhǎng)沙學(xué)院 畢業(yè)設(shè)計(jì) (論文 ) 11 第 5 章 總體設(shè)計(jì) 設(shè)計(jì)思想 服務(wù)器端和客戶端需要分別設(shè)計(jì),除了主聊天界面外,還加上了登錄界面,以便管理。作為即時(shí)通訊軟件系統(tǒng),客戶端信息全部來(lái) 自于服務(wù)器,服務(wù)器端能實(shí)時(shí)掌握所有客戶登錄、退出、對(duì)話情況,并能實(shí)時(shí)轉(zhuǎn)發(fā)、廣播給相應(yīng)客戶。由于服務(wù)器要和多個(gè)客戶聯(lián)系,所以在設(shè)計(jì)中采用了 Winsock 控件數(shù)組的形式,其中下標(biāo)為 0 的元素作為監(jiān)聽控件,當(dāng)有客戶登錄、退出或者相互間發(fā)送消息時(shí),能正確接收并作相應(yīng)處理,其余控件數(shù)組元素當(dāng)有客戶連接時(shí)自動(dòng)裝入??蛻舳酥恍枰粋€(gè) Winsock 控件,應(yīng)具有隨時(shí)連接、斷開服務(wù)器的功能,也應(yīng)具有對(duì)接收到的信息做出正確分析、處理的能力。在整個(gè)系統(tǒng)設(shè)計(jì)過(guò)程中,對(duì)客戶端和服務(wù)器端的消息到達(dá)這一事件的設(shè)計(jì)和編碼是系統(tǒng)的關(guān)鍵。 關(guān)鍵通信技術(shù)- Winsock 本系統(tǒng)的開發(fā)平臺(tái)是 VB ,采用了面向網(wǎng)絡(luò)連接的 Winsock 控件。 Winsock 是不可見控件 ,控件文件名是 ,全稱為 Microsoft Winsock Control,它能實(shí)現(xiàn)機(jī)器與機(jī)器間點(diǎn)對(duì)點(diǎn)的連接以及對(duì)話
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1