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

正文內(nèi)容

嵌入式聊天系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)論文(已改無(wú)錯(cuò)字)

2023-01-11 10:17:04 本頁(yè)面
  

【正文】 中的網(wǎng)絡(luò)中添加第三個(gè)主機(jī) Host C,那么 Host A 怎么知道信息被正確傳送到 Host B 而不是被傳送到 Host C 中了呢?基于 TCP/IP 網(wǎng)絡(luò)中的每一個(gè)主機(jī)均被賦予了一個(gè)唯一的 IP地址, IP地址是一個(gè) 32 位的無(wú)符號(hào)整數(shù),由于沒(méi)有轉(zhuǎn)變成二進(jìn)制,因此通常以小數(shù)點(diǎn)分隔,如: ,正如所見(jiàn) IP 地址均由四 個(gè)部分組成,每個(gè)部分的范圍都是 0255,以表示 8位地址。 值得注意的是 IP 地址都是 32 位地址,這是 IP協(xié)議版本 4(簡(jiǎn)稱 Ipv4)規(guī)定的,目前由于 IPv4 地址已近耗盡,所以 IPv6 地址正逐漸代替 Ipv4 地址, Ipv6 地址則是 128位無(wú)符號(hào)整數(shù)。 假設(shè)第二個(gè)程序被加入圖中的網(wǎng)絡(luò)的 Host B 中,那么由 Host A 傳來(lái)的信息如何能被正確的傳給程序 B 而不是傳給新加入的程序呢?這是因?yàn)槊恳粋€(gè)基于 TCP/IP 網(wǎng)絡(luò) 通訊 的程序都被賦予了唯一的端口和端口號(hào),端口是一個(gè)信息緩沖區(qū),用于保留 Socket中的輸入 /輸出信息,端口號(hào)是一個(gè) 16 位無(wú)符號(hào)整數(shù),范圍是 065535,以區(qū)別主機(jī)上的每一個(gè)程序(端口號(hào)就像房屋中的房間號(hào)),低于 256 的短口號(hào)保留給標(biāo)準(zhǔn)應(yīng)用程序,比如 pop3 的端口號(hào)就是 110,每一個(gè)套接字都組合進(jìn)了 IP 地址、端口、端口號(hào),這樣形成的整體就可以區(qū)別每一個(gè)套接字。要通過(guò)互聯(lián)網(wǎng)進(jìn)行通信,至少需要一對(duì)套接字,一個(gè)運(yùn)行于客戶機(jī)端,稱之為 ClientSocket,另一個(gè)運(yùn)行于服務(wù)器端,稱之為serverSocket。 根據(jù) 連接啟動(dòng)的方式以及本地套接字要連接的目標(biāo),套接字之間的連接過(guò)程可以分為三個(gè)步驟:服務(wù)器監(jiān)聽(tīng),客戶端請(qǐng)求,連接確認(rèn)。 服務(wù)器監(jiān)聽(tīng):是服務(wù)器端套接字并不定位具體的客戶端套接字,而是處于等待連接北京郵電大學(xué)畢業(yè)設(shè)計(jì) 8 的狀態(tài),實(shí)時(shí)監(jiān)控網(wǎng)絡(luò)狀態(tài)。 客戶端請(qǐng)求:是指由客戶端的套接字提出連接請(qǐng)求,要連接的目標(biāo)是服務(wù)器端的套接字。為此,客戶端的套接字必須首先描述它要連接的服務(wù)器的套接字,指出服務(wù)器端套接字的地址和端口號(hào),然后就向服務(wù)器端套接字提出連接請(qǐng)求。 連接確認(rèn):是指當(dāng)服務(wù)器端套接字監(jiān)聽(tīng)到或者說(shuō)接收到客戶端套接字的連接請(qǐng)求,它就響應(yīng)客戶端套 接字的請(qǐng)求,建立一個(gè)新的線程,把服務(wù)器端套接字的描述發(fā)給客戶端,一旦客戶端確認(rèn)了此描述,連接就建立好了。而服務(wù)器端套接字繼續(xù)處于監(jiān)聽(tīng)狀態(tài),繼續(xù)接收其他客戶端套接字的連接請(qǐng)求。 套接字,是支持 TCP/IP 的網(wǎng)絡(luò)通信的基本操作單元,可以看做是不同主機(jī)之間的進(jìn)程進(jìn)行雙向通信的端面點(diǎn),簡(jiǎn)單的說(shuō)就是通信的兩方的一種約定,用套接字中的相關(guān)函數(shù)來(lái)完成通信過(guò)程 。常用的 3種套接字類型: ① 流套接字用于提供面向連接、可靠的數(shù)據(jù)傳輸服務(wù)。該服務(wù)將保證數(shù)據(jù)能夠?qū)崿F(xiàn)無(wú)差錯(cuò)、無(wú)重復(fù)發(fā)送,并按順序接收。 ② 數(shù)據(jù)報(bào)套接字( SOCK_DGRAM):數(shù)據(jù)報(bào)套接字提供了一種無(wú)連接的服務(wù)。該服務(wù)并不能保證數(shù)據(jù)傳輸?shù)目煽啃?,?shù)據(jù)有可能在傳輸過(guò)程中丟失或出現(xiàn)數(shù)據(jù)重復(fù),且無(wú)法保證順序地接收到數(shù)據(jù)。 ③ 原始套接字( SOCK_RAW):原始套接字與標(biāo)準(zhǔn)套接字(標(biāo)準(zhǔn)套接字指的是前面介紹的流套接字和數(shù)據(jù)報(bào)套接字)的區(qū)別在于:原始套接字可以讀寫(xiě)內(nèi)核沒(méi)有處理的 IP 數(shù)據(jù)包,而流套接字只能讀取 TCP 協(xié)議的數(shù)據(jù),數(shù)據(jù)報(bào)套接字只能讀取 UDP協(xié)議的數(shù)據(jù)。因此,如果要訪問(wèn)其他協(xié)議發(fā)送數(shù)據(jù)必須使用原始套接字 [5]。 2 C++語(yǔ)言簡(jiǎn)介 在 C基礎(chǔ)上 ,一九八三年又由貝爾實(shí)驗(yàn)室的 Bjarne Stroustrup 推出了 C++。 C++進(jìn)一步擴(kuò)充和完善了 C語(yǔ)言,成為一種面向 對(duì)象的程序設(shè)計(jì)語(yǔ)言。 C++目前流行的編譯器最新版本是 Borland C++ ,Symantec C++ ,和 Microsoft Visual C++ 2020。C++提出了一些更為深入的概念,它所支持的這些面向?qū)ο蟮母拍钊菀讓?wèn)題空間直接地映射到程序空間,為程序員提供了一種與傳統(tǒng)結(jié)構(gòu)程序設(shè)計(jì)不同的思維方式和編程方法。因而也增加了整個(gè)語(yǔ)言的復(fù)雜性,掌握起來(lái)有一定難度。 C++由美國(guó) ATamp。T 貝爾實(shí)驗(yàn)室的本賈尼 斯特勞斯特盧普博士在 20 世紀(jì) 80 年代初期發(fā)明并實(shí)現(xiàn)(最初這種語(yǔ)言被稱作 “C with Classes” 帶類的 C)。開(kāi)始, C++是作為 C 語(yǔ)言的增強(qiáng)版出現(xiàn)的,從給 C語(yǔ)言增加類開(kāi)始,不斷的增加新特性。虛函數(shù)( virtual function)、運(yùn)算符重載( Operator Overloading)、多重繼承( Multiple Inheritance)、模板( Template)、異常( Exception)、 RTTI、命名空間( Name Space)逐漸被加入標(biāo)準(zhǔn)。 C++是一種面向?qū)?象的計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言。 C++這個(gè)詞在中國(guó)大陸的程序員圈子中通常被讀做 “C 加加 ” ,而西方的程序員通常讀做 “C plus plus” , “CPP” 。 它是一種使用非常廣泛的計(jì)算機(jī)編程語(yǔ)言。 C++是一種靜態(tài)數(shù)據(jù)類型檢查的、支持多重編程范式的通用程序設(shè)計(jì)語(yǔ)言。它支持過(guò)程化程序設(shè)計(jì)、數(shù)據(jù)抽象、面向?qū)ο蟪绦蛟O(shè)計(jì)、泛型程序設(shè)計(jì)等多種程序設(shè)計(jì)風(fēng)格。 C++語(yǔ)言的優(yōu)點(diǎn): (1) C++設(shè)計(jì)成靜態(tài)類型、和 C同樣高效且可移植的多用途程序設(shè)計(jì)語(yǔ)言。 (2) C++設(shè)計(jì)成直接的和廣泛的支持多種程序設(shè)計(jì)風(fēng)格。 (3) C++設(shè)計(jì)成給程序設(shè)計(jì)者更多的選擇,即使可能導(dǎo)致程序設(shè)計(jì)者選擇錯(cuò)誤。 (4) C++設(shè)計(jì)成盡可能與 C兼容,借此提供一個(gè)從 C到 C++的平滑過(guò)渡。 (5) C++避免平臺(tái)限定或沒(méi)有普遍用途的特性。 (6) C++不使用會(huì)帶來(lái)額外開(kāi)銷的特性。 北京郵電大學(xué)畢業(yè)設(shè)計(jì) 9 (7) C++設(shè)計(jì)成無(wú)需復(fù)雜的程序設(shè)計(jì)環(huán)境。 出于保證語(yǔ)言的簡(jiǎn)潔和運(yùn)行高效等方面的考慮, C++的很多特性都是以庫(kù)(如 STL)或其他的形式提供的,而沒(méi)有直接添加到語(yǔ)言本身里。關(guān)于此類話題, Bjarne Stroustrup 的《 C++語(yǔ)言的設(shè)計(jì)和演化》( 1994)里做了詳盡的 陳述。 C++在一定程度上可以和 C語(yǔ)言很好的結(jié)合,甚至大多數(shù) C語(yǔ)言程序是在 C++的集成開(kāi)發(fā)環(huán)境中完成的。 C++相對(duì)眾多的面向?qū)ο蟮恼Z(yǔ)言,具有相當(dāng)高的性能。 C++引入了面向?qū)ο蟮母拍?,使得開(kāi)發(fā)人機(jī)交互類型的應(yīng)用程序更為簡(jiǎn)單、快捷。很多優(yōu)秀的程序框架包括 MFC、 QT、 wxWidgets 就是使用的 C++。 北京郵電大學(xué)畢業(yè)設(shè)計(jì) 10 3 可行性 研究 和需求分析 可行性研究 可行性分析是軟件項(xiàng)目在正式立項(xiàng)目前 必須進(jìn)行的分析,目的不是解決問(wèn)題,而是確定軟件項(xiàng)目是否值得做以及能否用盡可能小的代價(jià)在盡可能短的時(shí)間內(nèi)解決??尚行苑治鲅芯孔罡镜娜蝿?wù)是對(duì)以后的行動(dòng)方針提出建議,如果問(wèn)題沒(méi)有可行的解,應(yīng)建議停止這項(xiàng)開(kāi)發(fā)工程,以避免時(shí)間、資源、人力和金錢的浪費(fèi);如果問(wèn)題值得解,則推薦一個(gè)好的解決方案,并制定一個(gè)初步的工程計(jì)劃。 可行性研究的目的是用最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定問(wèn)題是否能夠解決。一般從經(jīng)濟(jì)可行性、技術(shù)可行性、運(yùn)行可行性、法律可行性和開(kāi)發(fā)方案可行性等發(fā)面進(jìn)行研究。 經(jīng)濟(jì) 可行性分析 經(jīng)濟(jì)可行性分析主要是驚醒成本效益分析,包括國(guó)際項(xiàng)目的開(kāi)發(fā)成本,估算開(kāi)發(fā)成本是否會(huì)高于項(xiàng)目預(yù)期的全部經(jīng)費(fèi)。分析系統(tǒng)開(kāi)發(fā)對(duì)其他產(chǎn)品或利潤(rùn)帶來(lái)的影響。 因?yàn)楸拒浖蛔鲩_(kāi)發(fā)學(xué)習(xí)使用, 在開(kāi)發(fā)過(guò)程中用到的是開(kāi)源的操作系統(tǒng) Ubuntu, 所以暫且不考慮經(jīng)濟(jì)成本及盈利問(wèn)題。 技術(shù)可行性分析 技術(shù)可行性分析是根據(jù)客戶提出的系統(tǒng)功能、性能及實(shí)現(xiàn)系統(tǒng)的各項(xiàng)約束條件,從技術(shù)的角度研究系統(tǒng)的可行性。這是系統(tǒng)開(kāi)發(fā)過(guò)程中最難且最重要的工作,主要包括的內(nèi)容如下: ( 1) 風(fēng)險(xiǎn)分析:在給定的條件下能否實(shí)現(xiàn)所有功能。 ( 2) 資源分析:建立系統(tǒng)所需資源(人手)是否滿足。 ( 3) 技術(shù)分析:相關(guān)技術(shù) 的發(fā)展是否支持系統(tǒng)。 對(duì) 聊天系統(tǒng)的功能 、性能以及實(shí)現(xiàn) 聊天 系統(tǒng)的各項(xiàng)約束條件 的分析 ,根據(jù)本系統(tǒng)的設(shè)計(jì)目標(biāo)來(lái)衡量所需的技術(shù)是否滿足要求,本 聊天 系統(tǒng) 設(shè)計(jì) 是基于嵌入式 Linux 的聊天系統(tǒng),基于嵌入式 Linux 的技術(shù)比較成熟,因此利用現(xiàn)有技術(shù)完全可以實(shí)現(xiàn)系統(tǒng)的功能目標(biāo)。同時(shí),因研究開(kāi)發(fā)的期限長(zhǎng),系統(tǒng)可以在規(guī)定的時(shí)間內(nèi)完成開(kāi)發(fā)。該系統(tǒng)采用了經(jīng)典的 Client/Server 模式進(jìn)行開(kāi)發(fā),經(jīng)典的 C/S 體系結(jié)構(gòu)具有許多 Browser/Server體系結(jié)構(gòu)沒(méi)有的優(yōu)點(diǎn)。而且緊密的結(jié)合網(wǎng)絡(luò)套接字編程技術(shù), 可以 很好的實(shí)現(xiàn)了整個(gè)系統(tǒng)的開(kāi)發(fā)。 法律可行性分析 本系統(tǒng)設(shè)計(jì)開(kāi)發(fā)中不涉及到合同、侵權(quán)、責(zé)任以及各種與法律相抵觸的問(wèn)題,因此在法律上是可行的。 需求分析 需求分析是軟件開(kāi)發(fā)的基礎(chǔ)和前提,也是最終目標(biāo)軟件驗(yàn)收的標(biāo)準(zhǔn),它可以避免或者盡早的剔除早期的錯(cuò)誤。需求分析比較詳細(xì)地對(duì)用戶的需求進(jìn)行了分析,更加精準(zhǔn)、細(xì)致的回答了目標(biāo)系統(tǒng)必須做什么。通常我們?cè)谶M(jìn)行軟件開(kāi)發(fā)的過(guò)程中,往往由于需求分析的不足,而最終導(dǎo)致項(xiàng)目的失敗。據(jù)統(tǒng)計(jì),超過(guò) 60%的 失敗項(xiàng)目都是由于項(xiàng)目需求不明確或錯(cuò)誤造成的,由此可見(jiàn),需求分析是軟件工程中的一個(gè)重要環(huán)節(jié),是關(guān)乎軟件項(xiàng)目開(kāi)發(fā)成敗的重要因素?,F(xiàn)在的軟件項(xiàng)目中返工開(kāi)銷幾乎占了總開(kāi)發(fā)的一般么人導(dǎo)致返工的主要原因是需求分析不明確。從而引發(fā)了想怒開(kāi)發(fā)中的一些列更改。這些更改北京郵電大學(xué)畢業(yè)設(shè)計(jì) 11 可能導(dǎo)致浪費(fèi)大量的資源、軟件項(xiàng)目無(wú)法按時(shí)完成等嚴(yán)重問(wèn)題 。 所以,需求分析是軟件設(shè)計(jì)和實(shí)現(xiàn)的基礎(chǔ),是軟件項(xiàng)目賣相成功的重中之重。 通過(guò)對(duì)問(wèn)題及其環(huán)境的理解與分析,為問(wèn)題設(shè)計(jì)的信息、功能及行為建立模型,將用戶需求精確化、完全化,整個(gè)活動(dòng)構(gòu)成軟件開(kāi)發(fā)生命周期的需求分析階段 。 用戶需求 互聯(lián)網(wǎng) 的普及,聊天工具已經(jīng)成為人們?nèi)粘5纳畈豢苫蛉钡囊徊糠?。當(dāng)今時(shí)代,即使通訊軟件迅速發(fā)展,其聚集了娛樂(lè)資訊、社交、出行及聊天等強(qiáng)大的功能和擁有炫麗的圖形界面,但同時(shí)軟件的也體積也十分龐大,因此, 用戶希望研發(fā)一款軟件不會(huì)擁有許多附加功能,軟件體積較小 。因此開(kāi)發(fā)本系統(tǒng)也變得十分必需。 根據(jù) 用戶 對(duì)聊天 功能 的需求,主要可以概括為以下幾點(diǎn): 操作簡(jiǎn)單方便,界面簡(jiǎn)潔 。 能夠注冊(cè)用戶 。 擁有熟悉的聊天界面 。 能夠進(jìn)行私聊 。 能夠進(jìn)行群聊 。 運(yùn)行穩(wěn)定,安全可靠 。 功能需求 根據(jù)對(duì)用戶需求的分析和對(duì)產(chǎn)品的定位, 該聊天系統(tǒng) 要實(shí)現(xiàn) 主要 功能如下: 啟動(dòng)服務(wù)端, 可以 在服務(wù) 器的 終端看到用戶的 相關(guān)信息 。 客戶端可通過(guò)設(shè)置 IP 及端口號(hào)連接服務(wù)器 。 登陸界面有注冊(cè)新用戶 的功能 , 實(shí)現(xiàn)用戶 注冊(cè)。 用戶 登陸 時(shí)會(huì) 自動(dòng) 核實(shí)用戶名和 密碼是否 匹配 , 不匹配 會(huì)產(chǎn)生提示 信息。 登陸后進(jìn)入界面,可以看到 所有 在線的用戶。 用戶退出后會(huì)立即刷新在線用戶列表。 可以 通過(guò)相關(guān)操作實(shí)現(xiàn)與在 線用戶進(jìn)行私聊 。 實(shí)現(xiàn)與所有在線用戶的 群聊 。 聊天時(shí)可以更改字體顏色、大小及設(shè)置字體是否加粗、是否傾斜、是否加下劃線。 嵌入式 聊天系統(tǒng)的用例圖如圖 31 所示。 圖 31 聊天系統(tǒng)用例圖 北京郵電大學(xué)畢業(yè)設(shè)計(jì) 12 性能需求 首先要求程序運(yùn)行穩(wěn)定可靠,可以應(yīng)付各種由于系統(tǒng)問(wèn)題產(chǎn)生的錯(cuò)誤,比如連接失敗等,要求提前設(shè)想到類似的盡可能多的可能發(fā)生的事件,做出相應(yīng)的應(yīng)對(duì)措施,并向用戶顯示相應(yīng)的提示信息。 同時(shí)作為嵌入式平臺(tái)下的應(yīng)用軟件,要求程序?qū)λ\(yùn)行至系統(tǒng)的硬件要求盡可能低,運(yùn)行時(shí)內(nèi)存占用盡可能小,響應(yīng)速度要盡可能快。并且不發(fā)生內(nèi)存泄露之類影響系統(tǒng)運(yùn)行的錯(cuò)誤事件。并且要求易于維護(hù)及擴(kuò)展。所以采取模塊化封裝。程序要有良好的容錯(cuò)性,當(dāng)用戶進(jìn)行非法操作時(shí)或者系統(tǒng)本身出問(wèn)題是要能以最好的方式 退 出程序,避免程序假死現(xiàn)象 。 北京郵電大學(xué)畢業(yè)設(shè)計(jì) 13 4 系統(tǒng)的總體設(shè)計(jì) 體系結(jié)構(gòu)設(shè)計(jì) 通常的通信工具,都采用客戶機(jī) /服務(wù)器 (C/S)體系結(jié)構(gòu), C/S結(jié)構(gòu)是這樣的一種結(jié)構(gòu):它包括一個(gè)客戶機(jī) (或前端 ),一個(gè)服務(wù)器 (或稱后端 ),客戶機(jī)的作用是訪問(wèn)和處理遠(yuǎn)程服務(wù)器上的數(shù)據(jù) ,服務(wù)器的作用是接收和處理客戶機(jī)的數(shù)據(jù)請(qǐng)求。有時(shí) ,可能有多個(gè)客戶向同一個(gè)服務(wù)器同時(shí)請(qǐng)求服務(wù) ,這就需要服務(wù)器決定怎樣處理這些請(qǐng)求。Client/Server 結(jié)構(gòu)是當(dāng)前數(shù)據(jù)庫(kù)應(yīng)用程序中極為流行的一種方式。尤其是網(wǎng)絡(luò)技術(shù)的發(fā)展 ,使得當(dāng)前很多系統(tǒng)都采用這種方式進(jìn)行構(gòu)造 ,其最大的優(yōu)點(diǎn)是將計(jì)算機(jī)工作任務(wù)分別由客戶端和服務(wù)器端來(lái)共同完成 ,這樣有利 于充分合理的利用系統(tǒng)資源。另外它的服務(wù)器端還可以將信息集中起來(lái),任何客戶機(jī)都可以通過(guò)訪問(wèn)服務(wù)器而獲得所需的信息。Client/Server 模型最終可歸結(jié)為一種“請(qǐng)求 /應(yīng)答”關(guān)系。一個(gè)請(qǐng)求總是首先被客戶發(fā)出 ,然后服務(wù)器總是被動(dòng)地接收請(qǐng)求 ,返回客戶需要的結(jié)果。在客戶發(fā)出一個(gè)請(qǐng)求之前 ,服務(wù)進(jìn)程一直處于休眠狀態(tài)。一個(gè)客戶提出請(qǐng)求后 ,服務(wù)進(jìn)程被“喚醒”并且為客戶提供服務(wù) ,對(duì)客戶的請(qǐng)求做出所需要的應(yīng)答。如 圖 4
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1