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

正文內(nèi)容

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

2025-02-06 09:56 本頁面


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