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

正文內(nèi)容

基于linux操作系統(tǒng)的聊天軟件的設(shè)計(jì)畢業(yè)設(shè)計(jì)說(shuō)明書(shū)-wenkub

2023-03-09 09:56:35 本頁(yè)面
 

【正文】 用軟件。 正如大家知道的那樣, 80 年代后期美國(guó) Novell 公司先是以“一花獨(dú)秀,壓倒群芳”之勢(shì)占據(jù)了國(guó)際 LAN 市場(chǎng) 60%以上,一路領(lǐng)先,扶搖直上,尤其是 NetWare 386 版 推出后,受到普遍的注目;隨后,國(guó)際上的軟件公司龍頭老大 Microsoft 公司先后推出了 LAN Manager (即 LAN 3+ Open)、 LAN Manager 和 ,后來(lái)居上,成為世界 LAN 的兩大支柱之一。據(jù)稱,約有 65%的計(jì)算機(jī)要聯(lián)網(wǎng)或已經(jīng)聯(lián)網(wǎng),以求彼此通信,達(dá)到資源共享的目標(biāo)。具稱 1978 年全世界約有 700 萬(wàn)人每天使用計(jì)算機(jī),而到 1998 年上升到 5000 萬(wàn)人,目前全世界已經(jīng)擁有超過(guò)一億臺(tái)的計(jì)算機(jī),預(yù)計(jì)每天上機(jī)人數(shù)可達(dá) 2 億以上。 3)通訊介質(zhì)多樣。 在網(wǎng)絡(luò)發(fā)展上,最早出現(xiàn)的是分布在很大的地理范圍內(nèi)的遠(yuǎn)程網(wǎng)絡(luò)( WideAreaNetwork,WAN),例如美國(guó)國(guó)防部高級(jí)研究計(jì)劃局首先研制的 ARPA 網(wǎng),它從 1969 年建立 ,至今已經(jīng)發(fā)展成為跨越幾大洲的巨型網(wǎng)絡(luò)。所以,各種聊天軟件應(yīng)運(yùn)而生了。 本次設(shè)計(jì)的聊天 通信使用全雙工 ,主要實(shí)現(xiàn)了功能如 :用戶的 帳號(hào)與密碼的 注冊(cè)與登錄 ,客戶點(diǎn)對(duì)點(diǎn) 聊天 ,客戶 之間 的 群聊 ,以及文件的發(fā)送與接收。 2021屆畢業(yè)設(shè)計(jì)說(shuō)明書(shū) 基于 Linux 操作系統(tǒng)的聊天軟件的設(shè)計(jì) 學(xué) 院: 電氣與信息工程學(xué)院 學(xué)生姓名: 指導(dǎo)教師: 職稱 講師 專 業(yè): 電子信息工程 班 級(jí): 電子 1002 班 完成時(shí)間: 2021 年 5 月 摘 要 這 篇 論文整體 是 在 linux下 并通過(guò) 網(wǎng) 絡(luò) 實(shí)現(xiàn) 類(lèi)似于 qq的的一篇操作報(bào)告。測(cè)試運(yùn)行后的可靠性滿足 Linux網(wǎng)絡(luò)聊天的基本要求。如國(guó)外 的 MSN 等,國(guó)內(nèi)主要的有騰訊的 qq,還有 Ticq 和一些在網(wǎng)頁(yè)上的即時(shí)通訊工具,像 Chinaren 網(wǎng)站上的 WebMaster 等等,都做得即美觀又強(qiáng)大,騰訊的 qq 有非常大的用戶群。 70 年代中期由于微型計(jì)算機(jī)的出現(xiàn)和微處理器的出現(xiàn),以及短程通訊技術(shù)的迅猛發(fā)展,兩者相輔相成,又促進(jìn)以微機(jī)為基礎(chǔ)的各種局域網(wǎng)絡(luò)( Local Area Network, LAN)的飛快發(fā)展, 1975 年美國(guó) Xerox 公司首先推出了 Ether,與此時(shí)英國(guó)劍橋大學(xué)研制成劍橋環(huán)網(wǎng),他們是 LAN 的代表。 4)通常為一個(gè)部門(mén)所擁有。計(jì)算機(jī)的性能價(jià)格比以每年 25%的速度在提高。 90 年代計(jì)算機(jī)網(wǎng)絡(luò)化更加向深度和廣度方向發(fā)展。 1992 年 10 月 Microsoft 又搶先發(fā)布了 LAN ,以更 加領(lǐng)先于 Novell 的 NetWare 386 ,但后者立即隨后推出了 NetWare 。反過(guò)來(lái)又推 動(dòng)其發(fā)展,同時(shí) Novell LAN 采取了開(kāi)放協(xié)議技術(shù)( OPT),允許各種網(wǎng)絡(luò)協(xié)議緊密結(jié)合,進(jìn)而在 NetWare 386 版中采用了 NLM 模塊的組合技術(shù),可以實(shí)現(xiàn)異機(jī)種聯(lián)網(wǎng)的難題。由于 LAN Manager 與 Windows 的聯(lián)系;使它有更高的的性格比。 題 TCP/IP 介紹 Transmission Control Protocol/Inter Protocol 的簡(jiǎn)寫(xiě),中譯名為傳輸控制協(xié)議 /因特網(wǎng) 互聯(lián)協(xié)議,又名網(wǎng)絡(luò) 通訊協(xié)議 ,是 Inter 最基本的協(xié)議, Inter 國(guó)際 互聯(lián)網(wǎng) 絡(luò)的基礎(chǔ),由 網(wǎng)絡(luò)層 的 IP協(xié)議和 傳輸層 的 TCP 協(xié)議組成。而 IP 是給 因特網(wǎng) 的每一臺(tái)電腦規(guī)定一個(gè)地址。數(shù)據(jù)能夠用于任何目的,并且能夠很輕易地取代以前由專有數(shù)據(jù)網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)。 linux 介紹 Linux 是一種 開(kāi) 源的 操作系統(tǒng) ,它 擁有 像 Windows 和 Mac 那樣的功能齊全的 UI 界面( GUI,Graphical User Interface)。 Richard 創(chuàng)建 的自由軟件聯(lián)盟 推出 了兩種許可證 ,GNU是 通用公共許可證 (GNU Gneral Public License,GPL)和 GNU函數(shù)庫(kù)通用 公共許可證 (GNU Library Gneral Public License,LGPL)。 就這樣 GPL 保證了 Linux 的優(yōu)點(diǎn) 不僅現(xiàn)在自由可用 ,而且經(jīng)過(guò)修改后的系統(tǒng) 都仍然可以自由使用。加州大學(xué)伯克利分校的計(jì)算機(jī)系就是 在這眾多的大學(xué)中 ,并 對(duì) Unix進(jìn)行了 完善并且 增加了許多新的特點(diǎn) ,這就是 被廣大的開(kāi)發(fā)者所熟知的 的 BSC 版本的Unix。 ( 1) Linux 的昨天 1991 年 ,一名叫 Linus Torvalds 的芬蘭大學(xué)生 覺(jué)得 Unix 各種版本對(duì)于 一個(gè)類(lèi)型的機(jī)器的兼容性比較差( 80386 類(lèi)的機(jī)器 ) ,于是 他決定要開(kāi)發(fā)出一個(gè)全功能的、 并且 支持 POSIX標(biāo)準(zhǔn)的、類(lèi) 似于 Unix 的操作系統(tǒng) 的系統(tǒng) 內(nèi)核 ,該系統(tǒng) 取得 了 BSD 和 System V 的 精華 ,同進(jìn)去除 了它們的 糟粕 。 ( 2) Linux 的今天 作為服務(wù)器級(jí)的操作系統(tǒng) ,在廣大的開(kāi)發(fā)者的共同努力下 Linux操作系統(tǒng) 已經(jīng) 非常 成熟了。 現(xiàn)在 的 Linux 的 UI 界面 也在繼續(xù)完善。集市模型 就是為 Linux 這種獨(dú)特的自由流暢的開(kāi)發(fā)模型已被命名。每連接一個(gè)客戶端就簡(jiǎn)歷一個(gè)線程去監(jiān)聽(tīng)客戶端請(qǐng)求。 當(dāng)有多個(gè)客戶端登陸時(shí),客戶端界面會(huì)顯示其他用戶的用戶名。另外,如果其他人下線時(shí)。 UDP 在傳送數(shù)據(jù)之前不需要先建立連接,遠(yuǎn)地主機(jī)的傳輸層在收到 udp 數(shù)據(jù)后,不 能 給出任何確認(rèn) 信息 ,所以不能保證其交付時(shí) 信息的 可靠 性 。 但是 TCP 不 能 提供 廣播和多播 這些信息 服務(wù)。 圖 12 TCP連接的釋放過(guò)程 通過(guò)以上兩種方案的比較,考慮適用性,本次課題我選擇了選擇 TCP 通信協(xié)議。 Server端馬上會(huì)根據(jù) client 端發(fā)送的請(qǐng)求從而執(zhí)行對(duì)應(yīng)操作以至于達(dá)到 Server 端的要求。所以采用 C/S模型 進(jìn)行網(wǎng)絡(luò)聊天 系統(tǒng)的設(shè)計(jì) 需要分別編寫(xiě) client 端 和 Server 端 的 源代碼 , client 端 和 Server 端 之間相互通信的程序流程如實(shí)驗(yàn)圖 13 所示。 (4) 完成通信以后我們需要 關(guān)閉此 Socket 套接字并且釋放相應(yīng)的其他銷(xiāo)耗系統(tǒng)的操作 。 方案二: Caldera OpenLinux 系統(tǒng), Caldera 將 OpenLinux 這套系統(tǒng)定位為容易使用與設(shè)置的發(fā)行版,以集成使用環(huán)境與最終用戶辦公環(huán)境,容易安裝使用與簡(jiǎn)便管理為系統(tǒng)目標(biāo),有望成為最流行的公司團(tuán)體臺(tái)式 Linux 操作系統(tǒng),適合初學(xué)者使用,全部安裝需要 1GB 的硬盤(pán)空間。 開(kāi)發(fā)工具的選擇 方案一: vi 編輯器, vi 編輯器 是 Linux 上最基本的 文本編輯器 , 它是以 字符 模式 為核心的 。 Vi 編輯器 可以執(zhí)行 文字 輸出、 文字 刪除、 文字 查找、 文字 替換、 文件 塊操作等眾多文本操作,用戶 也 可以根據(jù)自 身的 需要對(duì)其進(jìn)行 相應(yīng)的 定制 和二次開(kāi)發(fā) ,這是其他 編輯程序 所 不能達(dá)到的效果 。 用eclipse+CDT 可以 自動(dòng)生成 makefile 文件,比較適合偏愛(ài)圖形界面的開(kāi)發(fā)人員。 對(duì)于線程的并發(fā)情況我們就要建立多個(gè)線程去出來(lái) 。 關(guān)于多進(jìn)程和多線程, 我覺(jué)得 最 核心 的一句話是 “進(jìn)程是資源分配的最小單位,線程是CPU調(diào)度的最小單位 ”。 I/O 多路復(fù)用 除了可以采用多進(jìn)程和多線程方法去實(shí)現(xiàn)并發(fā)情況之外,還可以采用 I/O 多路復(fù)用這門(mén)技術(shù)來(lái)實(shí)現(xiàn)。 方案一:當(dāng)我們使用的 poll 函數(shù) 返回時(shí),會(huì) 返回 一個(gè)文件是讀寫(xiě)標(biāo)志,應(yīng)用程序根據(jù)不同的 返回 標(biāo)志 去 讀寫(xiě)相應(yīng)的文件,實(shí)現(xiàn) 不用阻塞就可以完成 讀寫(xiě)。 2. 返回一個(gè)位掩碼: 我們?cè)谔?理某一些功能時(shí) 不必 要 阻塞 ,需要 立刻進(jìn)行的操作, 那么我們就需要下面的 幾個(gè)標(biāo)志 (通過(guò) linux/ 定義 )用來(lái)指示可能的操作 ,如表 21 所示: 標(biāo)志 含義 POLLIN 如果設(shè)備無(wú)阻塞的讀,就返回該值 POLLRDNORM 通常的數(shù)據(jù)已經(jīng)準(zhǔn)備好,可以讀了,就返回該值。通常地做法是( POLLOUT|POLLNORM) POLLWRBAND 于 POLLRDBAND 類(lèi)似 表 21 poll函數(shù)返回的位掩碼及其含義 方案二: select 函數(shù): select()函數(shù)的接口主要 以 39。fd_set)是一組文件描述符 (fd)的 大 集合。 FD_SET(fd, amp。 FD_ISSET(fd, amp。這個(gè)值是 與 系統(tǒng)相關(guān)的,同時(shí) 我們也要 檢查 Linux 系統(tǒng)中的 自帶的 select() 的 man 手冊(cè)。 其中: nfds 需要檢查的文件描述符個(gè)數(shù),數(shù)值應(yīng)該比是三組 fd_set 中最大數(shù) 更大,而不是實(shí)際文件描述符的總數(shù)。 (注:錯(cuò)誤并不是意外狀態(tài) ) timeout NULL 指針代表 一直 等待,否則是指向 timeval 結(jié)構(gòu)的指針,代表最 長(zhǎng)等待時(shí)間。 3 系統(tǒng)實(shí)現(xiàn) Linux 提供的有關(guān) Socket 的系統(tǒng)調(diào)用 (1) Socket() 作用: socket 函數(shù)為 client 端 或 server 端 創(chuàng)建一個(gè) sokcet 套接字 格式: int socket(int family,int type,int protocol)。 Type:網(wǎng)絡(luò)程序所采用的通信協(xié)議,可以取 SOCK_STREAM 或 SOCK_DGRAM。 Sockaddr: IP 地址和端口 Addrlen:設(shè)置結(jié)構(gòu)大小長(zhǎng)度。 backlog:表示接入隊(duì)列允許的連接數(shù)目。 addr:表示指向局部的數(shù)據(jù)結(jié)構(gòu) struct sockaddrin的指針。 參數(shù)作用: sockfd:表示 socket 的文件描述符。 格式 2: int recv (int sockfd , void *buf,int len, usigned int flags)。 (7) 有關(guān)線程的系統(tǒng)調(diào)用函數(shù) pthread_create()、 pthread_detach() 實(shí)驗(yàn)過(guò)程說(shuō)明(使用 TCP/IP) (1) 監(jiān)聽(tīng)連接 利用 socket、 bind、 listen 建立連接,步驟是: 1) 先用 socket 函數(shù)初始化 socket,創(chuàng)建新的 sockfd。 =AF_INET。my_addr,sizeof(stuct sockaddr))。 (3) 主機(jī)接收請(qǐng)求,進(jìn)行數(shù)據(jù)通信 1)主機(jī)利用 accept 接收請(qǐng)求。 圖 32 server端結(jié)構(gòu)流程圖 客戶端結(jié)構(gòu)流程圖 客戶通過(guò) Socket 套接字建立與 server 端的連接。用戶登錄的表單應(yīng)該嵌入整體的結(jié)構(gòu)當(dāng)中。同時(shí)對(duì)密碼也要求保密,將密碼加密后再存入數(shù)據(jù)文件。 (4) 再打開(kāi)另一個(gè)窗口,運(yùn)行 client 1001。 (10) 客戶端登錄時(shí)若有其他人在線,則可用↑↓調(diào)整,并按回車(chē)選擇與其私聊。 6) 進(jìn)入群聊 7) 輸入 quit!結(jié)束群聊。 5) 注銷(xiāo) 運(yùn)行結(jié)果如下。 圖 43 1001注冊(cè)成功 然后退到歡迎界面,回車(chē)選擇登陸,如圖 44。 圖 47 客戶端 1002 與 1001 私聊窗口 客戶端 100 1002 和 1003 分別選中群聊后,進(jìn)入群聊窗口,如圖 48。 圖 410 客戶端 1001 注銷(xiāo)成功 上述運(yùn)行結(jié)果表明, client 端間的消息收取以及文件傳送可以通過(guò) server 端被對(duì)方成功接收,并且成功實(shí)現(xiàn)了系統(tǒng)的基本功能,如私聊給功能、群聊功能。 經(jīng)過(guò)近了兩周的設(shè)計(jì)和開(kāi)發(fā),聊天 軟件 的設(shè)計(jì)完畢。 這次畢業(yè)設(shè)計(jì) 使我明白,在以后的學(xué)習(xí)工作 中,要不斷的完善自己的知識(shí)體系結(jié)構(gòu),注意理論 和 實(shí)踐 的 結(jié)合,學(xué)知識(shí)關(guān)鍵 在于 要學(xué)活,而不能死記死搬書(shū)本上的知識(shí),關(guān)鍵 在于活學(xué)活用 ,這樣所學(xué)到的東西才 是我們自己的東西 ,才 會(huì) 達(dá)到了學(xué)習(xí)的真正目的! 致謝 短短的設(shè)計(jì)時(shí)間已經(jīng)結(jié)束了,非常感謝指導(dǎo)老師 —凌云老師的幫助,老師對(duì)我們的課程設(shè)計(jì)特別熱心,給予了我們無(wú)微不至的幫助。最后要感謝母校給我提供這么好的學(xué)習(xí)環(huán)境。 我要感謝我的指導(dǎo)教師 凌云老師 雖身負(fù)教學(xué)、科研重任,仍抽出時(shí)間,不時(shí)召集我和同門(mén)以督責(zé)課業(yè),耳提面命,殷殷之情盡在諄諄教誨中。我還要感謝學(xué)院的各位工作人員,他們細(xì)致的工作使我和同學(xué)們的學(xué)習(xí)和生活井然有序。沒(méi)有他們就沒(méi)有我,我的點(diǎn)滴成就都來(lái)自他們。 本論文的完
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1