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

正文內(nèi)容

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

2025-02-06 09:56 本頁(yè)面


【正文】 ( GUI,Graphical User Interface)。 Linus Torvald。作為一種 很棒的 操作系統(tǒng) ,它具有與Unix,Mac,Windows 和 Windows NT 相似的 的功能 ,但是其中又會(huì)有不同的地方 。 提到 Linux 我們 一定要知道 GNU 和 Unix。 Richard 創(chuàng)建 的自由軟件聯(lián)盟 推出 了兩種許可證 ,GNU是 通用公共許可證 (GNU Gneral Public License,GPL)和 GNU函數(shù)庫(kù)通用 公共許可證 (GNU Library Gneral Public License,LGPL)。 除了 一些庫(kù)是以 GNU函數(shù)庫(kù)通用公共許可證發(fā)行的 ,其他基本上 GNU工程的軟件和文檔是以 GNU通用公共許可證 為基礎(chǔ) 發(fā) 布 的。按照 GNU 的 相關(guān) 規(guī)定 ,Linux 的源代碼可以 在網(wǎng)上免費(fèi)自由 獲取 ,這一點(diǎn)為我們學(xué)習(xí)者提供了極大的方便 。 GPL 極大的 體現(xiàn)了 Stallman 的思想:只要用戶所做的修改是有利于系統(tǒng)發(fā)展的 ,用戶可以自由地使用、拷貝、查詢、重用、修改 也可以 發(fā)布這個(gè) 修改后的 軟件。 就這樣 GPL 保證了 Linux 的優(yōu)點(diǎn) 不僅現(xiàn)在自由可用 ,而且經(jīng)過(guò)修改后的系統(tǒng) 都仍然可以自由使用。 Unix是由 AT—T貝爾實(shí)驗(yàn)室的 Ken Thompson和 Dennis Ritchie在已經(jīng)廢棄了的 PDP7上開(kāi)發(fā)的 在 1969 年; 剛開(kāi)始 它是一個(gè) 僅用 用匯編語(yǔ)言單 編寫的一個(gè)建議的單用戶 用戶操作系統(tǒng)。后來(lái) ,又在 PDP11 上用 C 語(yǔ)言重新編寫 系統(tǒng) ,把 Unix 做成為了一個(gè)文本處理系統(tǒng) ,這 樣極大的促進(jìn)了 Unix 在貝爾實(shí)驗(yàn)室得的 使 用。 Unix 的最初版本 不收費(fèi)的供應(yīng)給眾多的大學(xué)的計(jì)算機(jī)系去使用 。加州大學(xué)伯克利分校的計(jì)算機(jī)系就是 在這眾多的大學(xué)中 ,并 對(duì) Unix進(jìn)行了 完善并且 增加了許多新的特點(diǎn) ,這就是 被廣大的開(kāi)發(fā)者所熟知的 的 BSC 版本的Unix。 在這個(gè)事間的同時(shí) ,很多其他的 的 Unix 版本也開(kāi)始萌生。 Unix 不斷發(fā)展 壯大 ,許多 版本被應(yīng)用到不同 類型的 的計(jì)算機(jī)使用。而 Linux最初 就 是專門為 Intel 的個(gè)人計(jì)算機(jī)設(shè)計(jì)的。 ( 1) Linux 的昨天 1991 年 ,一名叫 Linus Torvalds 的芬蘭大學(xué)生 覺(jué)得 Unix 各種版本對(duì)于 一個(gè)類型的機(jī)器的兼容性比較差( 80386 類的機(jī)器 ) ,于是 他決定要開(kāi)發(fā)出一個(gè)全功能的、 并且 支持 POSIX標(biāo)準(zhǔn)的、類 似于 Unix 的操作系統(tǒng) 的系統(tǒng) 內(nèi)核 ,該系統(tǒng) 取得 了 BSD 和 System V 的 精華 ,同進(jìn)去除 了它們的 糟粕 。他 將內(nèi)核開(kāi)發(fā)到了 版 ,這個(gè)版本 中 已經(jīng)可以運(yùn)行 gcc、 bash 和 其他少量的 應(yīng)用程序。后來(lái)他 在英特網(wǎng)的幫助下在在 1994 年 將 Linux 升級(jí)到 版本。它的源代碼量也呈指數(shù)形式 迅速 增長(zhǎng) ,實(shí)現(xiàn)了基本的 TCP/IP 功能 ,在此同時(shí)大約有 100000 用戶開(kāi)始使用 Linux 操作系統(tǒng)了, Linux 系統(tǒng)開(kāi)始被廣大的用戶所認(rèn)可。 ( 2) Linux 的今天 作為服務(wù)器級(jí)的操作系統(tǒng) ,在廣大的開(kāi)發(fā)者的共同努力下 Linux操作系統(tǒng) 已經(jīng) 非常 成熟了?,F(xiàn)在的 Linux 內(nèi)核 集成了 150 萬(wàn) 多行代碼 ,不僅可以 作為 Web 服務(wù)器平臺(tái) ,而且也為 越來(lái)越多的用戶提供文件和打印服務(wù)。它既被當(dāng)作郵件服務(wù)器的一種候選平臺(tái) ,也被當(dāng)作一種強(qiáng)壯而安全的防火墻。 Linux 的企業(yè)級(jí)特性 : Linux 系統(tǒng)不僅 支持多處理器、支持大型文件系統(tǒng)、日志文件系統(tǒng) 而且在 密集型計(jì)算和高可用性集群技術(shù) 上面 也逐步成熟。 現(xiàn)在 的 Linux 的 UI 界面 也在繼續(xù)完善。 KDE 桌面提供的圖形用戶界面在易用性和可配置方面和微軟的 Windows 不相上下 。 ( 3) Linux 的明天 Linux 最強(qiáng)大的生命力在于 其 開(kāi)源 。每 學(xué)習(xí)者 都有可以 輕松 自由 的 獲取內(nèi)核源 代碼 ,每個(gè)人都 可 以運(yùn)載源程序 并對(duì)其 加以修改 ,而后 的 他人也可以自由獲取你修改后的源程序。集市模型 就是為 Linux 這種獨(dú)特的自由流暢的開(kāi)發(fā)模型已被命名。集市模型 是 通過(guò)重視實(shí)驗(yàn)征集 和 充分利用早期的反饋 ,通過(guò)平衡的配置腦力資源 ,從而 開(kāi)發(fā)出更優(yōu)秀的軟件。 本文的研究?jī)?nèi)容 本課題的任務(wù)是設(shè)計(jì)一個(gè)支持多人群聊以及用戶間私聊和文件傳送的聊天系統(tǒng)。 首先服務(wù)器會(huì)初始化,然后等待客戶端的連接。每連接一個(gè)客戶端就簡(jiǎn)歷一個(gè)線程去監(jiān)聽(tīng)客戶端請(qǐng)求。 客戶端是注冊(cè)好了的,只需要登陸 。客戶端注冊(cè)成功會(huì)把客戶端信息保存到鏈表和文件中。注銷時(shí)會(huì)把對(duì)應(yīng)的鏈表節(jié)點(diǎn)銷毀,并且刪除文件對(duì)應(yīng)信息。 當(dāng)有多個(gè)客戶端登陸時(shí),客戶端界面會(huì)顯示其他用戶的用戶名??梢詫?shí)現(xiàn)用↑↓鍵選擇,然后按回車鍵進(jìn)入與其的私聊界面。然后可以和其進(jìn)行私聊和文件傳送。而好友界面的倒數(shù)第二個(gè)為群聊選擇,當(dāng)進(jìn)入群聊時(shí),可以實(shí)現(xiàn)多人同時(shí)聊天。另外,如果其他人下線時(shí)。你的顯示好友界面里的那個(gè)客戶端就會(huì)消失,同時(shí),有人上線時(shí),會(huì)在好友欄加上新加的客戶端。最后一個(gè)選項(xiàng)是退出,銷毀對(duì)應(yīng)線程及文件描述符。 2 技術(shù)說(shuō) 明與方案選擇 通信方式 UDP 通信 UDP 是用戶數(shù)據(jù)報(bào)協(xié)議的簡(jiǎn)稱。 UDP 在傳送數(shù)據(jù)之前不需要先建立連接,遠(yuǎn)地主機(jī)的傳輸層在收到 udp 數(shù)據(jù)后,不 能 給出任何確認(rèn) 信息 ,所以不能保證其交付時(shí) 信息的 可靠 性 。它的特點(diǎn)是:無(wú)連接, 不能 提供的可靠的信道,但 正是因?yàn)?無(wú)連接 這個(gè)特點(diǎn)使 UDP 具有很好的傳輸效率。 TCP 通信 TCP 是傳輸控制協(xié)議的簡(jiǎn)稱, TCP 可以 提供一條全雙工的、可靠的信道。 TCP 在數(shù)據(jù)傳送之前必須先建立 相應(yīng)的 連接,數(shù)據(jù)傳送 完成 后 必須 釋放連接。 但是 TCP 不 能 提供 廣播和多播 這些信息 服務(wù)。 正是因?yàn)?TCP 要提供可靠的、面向連接的運(yùn)輸 等多樣的 服務(wù),所以增加了 額外的 系統(tǒng)開(kāi)銷, 例如 確認(rèn)、流量 的 控制、計(jì)時(shí)器以及連接管理等 服務(wù) 都需要 消耗 許多系統(tǒng)資源。 如果計(jì)算機(jī)之間使用通信 方式是 TCP 通信 , 則計(jì)算機(jī)之間的 連接過(guò)程需要三次握手實(shí)現(xiàn),如 下圖 11 所示。 圖 11 用三次握手建立 TCP連接 對(duì)于 計(jì)算機(jī) 連接的釋放過(guò)程也需要類似的 3 次握手的互相確認(rèn)的過(guò)程,如實(shí)驗(yàn)圖 12所示。 圖 12 TCP連接的釋放過(guò)程 通過(guò)以上兩種方案的比較,考慮適用性,本次課題我選擇了選擇 TCP 通信協(xié)議。 C/S 模型 C/S 模型將應(yīng)用程序分為 server 端和 client 端兩基本的部分, client 端對(duì) server 端發(fā)送請(qǐng)求, server 端對(duì)其作出相應(yīng)的回應(yīng)并開(kāi)始提供服務(wù)。在 TCP/IP 應(yīng)用中,多數(shù)網(wǎng)絡(luò)應(yīng)用程序是使用 C/S 模型設(shè)計(jì)的。 server 端一直處于等待狀態(tài),當(dāng)一個(gè) client 端提出請(qǐng)求時(shí)。 Server端馬上會(huì)根據(jù) client 端發(fā)送的請(qǐng)求從而執(zhí)行對(duì)應(yīng)操作以至于達(dá)到 Server 端的要求。 通常, C/S 模型必須包含兩個(gè)獨(dú)立的應(yīng)用程序: client 端和 Server 端的應(yīng)用程序。 在 C/S模型 中,多個(gè) 在同樣的內(nèi)網(wǎng)中的計(jì)算 機(jī)都作 為 client 端 ,與 端口號(hào)和 ip 進(jìn)行連接,并通過(guò) Server 端傳遞 信息。所以 client 端 的通信 既可以理解為 client 端和 Server 端之間的通信。所以采用 C/S模型 進(jìn)行網(wǎng)絡(luò)聊天 系統(tǒng)的設(shè)計(jì) 需要分別編寫 client 端 和 Server 端 的 源代碼 , client 端 和 Server 端 之間相互通信的程序流程如實(shí)驗(yàn)圖 13 所示。 圖 13 Socket通信流程圖 網(wǎng)絡(luò)套接字( socket)的概念 Socket 接口 是 TCP/IP 的 API,它提供了 相應(yīng)的功能函數(shù)與 例程, 我們 可以使用 對(duì)應(yīng)的函數(shù)與例程進(jìn)行 TCP/IP 應(yīng)用程序 的開(kāi)發(fā)與維護(hù) 。 使用 Socket 套接字 進(jìn)行網(wǎng)絡(luò)通信的 開(kāi)發(fā) 過(guò)程如 下面的 步驟: (1) 建立一個(gè) Socket 套接字 (2) 按 我們所需要的 要求配置 好 Socket 套接字 ,將 socket 連接到 遠(yuǎn)程 server 端或者是本機(jī) server 端 或給 Socket 套接字 指定本地協(xié)議端口 號(hào) 。 (3) 按要求通過(guò) Socket 套接字 發(fā)送和接受 相應(yīng)的 數(shù)據(jù) 與信息 。 (4) 完成通信以后我們需要 關(guān)閉此 Socket 套接字并且釋放相應(yīng)的其他銷耗系統(tǒng)的操作 。 以上就是 通過(guò) Socket 套接字來(lái) 實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn) 信息 通信 的 4 個(gè)編程 的核心 要點(diǎn)。 系統(tǒng)的選擇 方案一:紅帽子系統(tǒng)即 Red Ha 系統(tǒng) 是目前銷售量最高、安裝最簡(jiǎn)便、最適合初學(xué)者的Linux 發(fā)行版,也是目前世界上最流行的 Linux 發(fā)行套件,它的市場(chǎng)營(yíng)銷、包裝及服務(wù)做的相當(dāng)不錯(cuò),自行開(kāi)發(fā)了 RPM 套件管理程序及 X 桌面環(huán)境 Gnome 的眾多軟件并將其源代碼回饋給 Open Source munity。 也正是因?yàn)?Red Hat 的方便性,安裝程序?qū)⑾到y(tǒng)的構(gòu)架或軟件安裝方式全部做了包裝,用戶學(xué)到的都是 GUI 界面(圖形用戶界面)上輸入一些設(shè)置值的粗淺知識(shí),至于軟件安裝了那些文件、安裝到哪個(gè)文件目錄、系統(tǒng)作了哪些設(shè)置,使用者則一無(wú)所知,一旦真正遇到系統(tǒng)程序發(fā)生問(wèn)題時(shí),要解決問(wèn)題也就比較困難。 方案二: 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 的硬盤空間。 Caldera 有自行研發(fā)的圖形界面的安裝程序向?qū)В惭b過(guò)程可以玩俄羅斯方塊,提供完整的 KDE 桌面環(huán)境,附贈(zèng)功能強(qiáng)大的商業(yè)軟件,如 StarOffice、圖形界面的硬盤分割工具Partition Magic 等。 方案三: SuSE Linux 系統(tǒng), SuSE 是歐洲最流行的 Linux 發(fā)行版,而且 SuSE 是軟件國(guó)際化的先驅(qū),讓軟件支持各國(guó)語(yǔ)系,貢獻(xiàn)頗豐, SuSE 也是用 RPM 作為軟件安裝管理程序,不過(guò) SuSE 并不適合新手使用,提供了非常多的工具軟件,全部安裝 需 的硬盤空間,安裝過(guò)程也較為復(fù)雜。 通過(guò)以上三種方案的比較,考慮適用性,和可操作性,選擇 Red hat Linux 操作系統(tǒng)。 開(kāi)發(fā)工具的選擇 方案一: vi 編輯器, vi 編輯器 是 Linux 上最基本的 文本編輯器 , 它是以 字符 模式 為核心的 。由于 去除了 UI 界面,使 vi 編輯器 效率 提高了 很 多 。在 Linux 上也有 許多 UI 界面的 編輯器 ,但 VI在系統(tǒng)和 服務(wù)器管理 中的 相應(yīng)的 功能是 UI編輯器 不可以達(dá)到的 。 VI編輯器 在 Linux上的 重要性是與 Edit 在 DOS 上 的地位是 一樣。 Vi 編輯器 可以執(zhí)行 文字 輸出、 文字 刪除、 文字 查找、 文字 替換、 文件 塊操作等眾多文本操作,用戶 也 可以根據(jù)自 身的 需要對(duì)其進(jìn)行 相應(yīng)的 定制 和二次開(kāi)發(fā) ,這是其他 編輯程序 所 不能達(dá)到的效果 。 加上紅帽子系統(tǒng)中自帶的 gcc編譯器 和 gdb 調(diào)試 工具,所以 Linux 系統(tǒng)目前最主流的開(kāi)發(fā)工具。 方案二: 用 eclipse 加 CDT+GCC+GDB,雖然 eclipse 擁有 方便的 UI 界面 , 配置開(kāi)發(fā)環(huán)境有點(diǎn) 復(fù)雜 ,如果配置好了,開(kāi)發(fā)的效率還是不錯(cuò)的。和 在 windows 下開(kāi)發(fā) 基本相似。 用eclipse+CDT 可以 自動(dòng)生成 makefile 文件,比較適合偏愛(ài)圖形界面的開(kāi)發(fā)人員。 通過(guò)以上兩種方案的比較,考慮適用性,和編程習(xí)慣,選擇方案一。 多線程與多進(jìn)程 點(diǎn)對(duì)點(diǎn)通信的實(shí)現(xiàn)知識(shí) ,了解了 主機(jī)進(jìn)程與服務(wù)器進(jìn)程之間的連接 關(guān)系 ,建立連接 了一對(duì)一的 進(jìn)程聯(lián)系,即主機(jī)的一個(gè)進(jìn)程 必須與 服務(wù)器的一個(gè)進(jìn)程之間建立 相應(yīng)的 連接。而 對(duì)于每一個(gè) client 端服務(wù)器都要建立一個(gè)相應(yīng)的進(jìn)程去實(shí)現(xiàn)和 client 端的通信。 對(duì)于線程的并發(fā)情況我們就要建立多個(gè)線程去出來(lái) 。 由于服務(wù)端 接受信息 的行為 是被動(dòng)的,當(dāng) 服務(wù)端 沒(méi)有信息可以接收時(shí),該進(jìn)程就 應(yīng)該自動(dòng)的 阻塞,發(fā)送任務(wù)也 應(yīng)該 一起被阻塞。不同 端口的 收發(fā)之間就存在 并發(fā) 情況 , 這樣我們就應(yīng)該 應(yīng)該 建立多個(gè) 不同的 進(jìn)程 去分別完成信息的 收發(fā) 。這樣,當(dāng) 一個(gè) client 端的請(qǐng)求 被阻塞時(shí),不至于影響 其它的 client 端 的 正常工作 。 關(guān)于多進(jìn)程和多線程, 我覺(jué)得 最 核心 的一句話是 “進(jìn)程是資源分配的最小單位,線程是CPU調(diào)度的最小單位 ”。 方案一 :多進(jìn)程, 數(shù)據(jù)共享 非常 復(fù)雜,需要用 IPC 處理 ;數(shù)據(jù)是分開(kāi) 處理的 ,同步 比較簡(jiǎn)單 ;但是 內(nèi)存 耗的 多,切換 相應(yīng)的會(huì)比較 復(fù)雜, CPU 利用率低創(chuàng)建銷毀、切換復(fù)雜,速度慢 ;編程簡(jiǎn)單,調(diào)試簡(jiǎn)單; 適應(yīng)于多核、多機(jī)分布式;如果一臺(tái)機(jī)器不夠,擴(kuò)展到多臺(tái)機(jī)器比較簡(jiǎn)單 。 方案二:多線程,他的優(yōu)點(diǎn)在于 共享進(jìn)程 間的 數(shù)據(jù),數(shù)據(jù)共享 就變的十分的 簡(jiǎn)單, 并且創(chuàng)建銷毀、切換
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1