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

正文內(nèi)容

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

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

【正文】 ddr , int addrlen)。 addr:表示指向局部的數(shù)據(jù)結(jié)構(gòu) struct sockaddrin的指針。 作用:與 listen 函數(shù)合用,監(jiān)聽信息、接收 client 端請(qǐng)求。 backlog:表示接入隊(duì)列允許的連接數(shù)目。 作用:監(jiān)聽。 Sockaddr: IP 地址和端口 Addrlen:設(shè)置結(jié)構(gòu)大小長(zhǎng)度。 (2) bind( ) 格式: int bind(int sockfd,struct sockaddr *addr,int addrlen)。 Type:網(wǎng)絡(luò)程序所采用的通信協(xié)議,可以取 SOCK_STREAM 或 SOCK_DGRAM。 其中, AF_UNLX 只能夠用于 UNIX 系統(tǒng)進(jìn)程間通信 。 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)。接著應(yīng)該用 FD_ISSET 宏來(lái)查找返回的文件描述符組。 (注:錯(cuò)誤并不是意外狀態(tài) ) timeout NULL 指針代表 一直 等待,否則是指向 timeval 結(jié)構(gòu)的指針,代表最 長(zhǎng)等待時(shí)間。 writeset 用來(lái)檢查可寫性的一組文件描述符。 其中: nfds 需要檢查的文件描述符個(gè)數(shù),數(shù)值應(yīng)該比是三組 fd_set 中最大數(shù) 更大,而不是實(shí)際文件描述符的總數(shù)。 [譯者注: Linux 就是這 樣的系統(tǒng)!你會(huì)發(fā)現(xiàn) sizeof(fd_set)的結(jié)果是 128(*8 = FD_SETSIZE=1024) 盡管很少你會(huì)遇到這種情況。這個(gè)值是 與 系統(tǒng)相關(guān)的,同時(shí) 我們也要 檢查 Linux 系統(tǒng)中的 自帶的 select() 的 man 手冊(cè)。 在過(guò)去,一個(gè) fd_set 通常是小于 32 個(gè)文件描述符 的 ,因?yàn)?fd_set 其實(shí) 僅僅使用 了一個(gè)int 的比特矢量來(lái)實(shí)現(xiàn) 它。 FD_ISSET(fd, amp。 FD_CLR(fd, amp。 FD_SET(fd, amp。 FD_ZERO(amp。fd_set)是一組文件描述符 (fd)的 大 集合。類型 為 基礎(chǔ) 而建立的 。通常地做法是( POLLOUT|POLLNORM) POLLWRBAND 于 POLLRDBAND 類似 表 21 poll函數(shù)返回的位掩碼及其含義 方案二: select 函數(shù): select()函數(shù)的接口主要 以 39。 POLLERR 如果設(shè) 備發(fā)生錯(cuò)誤,就返回該值。 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)備好,可以讀了,就返回該值。 poll 返回不同的標(biāo)志, 這些標(biāo)志 告訴主進(jìn)程文件是否可以讀寫,其原型(定義在 linux\ ) : unsigned int (*poll) (struct file *filp, poll_table *wait)。 方案一:當(dāng)我們使用的 poll 函數(shù) 返回時(shí),會(huì) 返回 一個(gè)文件是讀寫標(biāo)志,應(yīng)用程序根據(jù)不同的 返回 標(biāo)志 去 讀寫相應(yīng)的文件,實(shí)現(xiàn) 不用阻塞就可以完成 讀寫。 因此我在收發(fā)信息方面使用了 I/O 多路復(fù)用去處理,即在處理群聊私聊的信息傳送時(shí)。 I/O 多路復(fù)用 除了可以采用多進(jìn)程和多線程方法去實(shí)現(xiàn)并發(fā)情況之外,還可以采用 I/O 多路復(fù)用這門技術(shù)來(lái)實(shí)現(xiàn)。 方案二:多線程,他的優(yōu)點(diǎn)在于 共享進(jìn)程 間的 數(shù)據(jù),數(shù)據(jù)共享 就變的十分的 簡(jiǎn)單, 并且創(chuàng)建銷毀、切換簡(jiǎn)單,速度很快 ,缺點(diǎn)也由于 這個(gè)原因?qū)е峦綇?fù)雜 ;雖然 占用內(nèi)存少,切換簡(jiǎn)單, 但是 CPU 利用率高 , 編程復(fù)雜,調(diào)試復(fù)雜 ; 一個(gè)線程 死掉 將導(dǎo)致整個(gè)進(jìn)程 失去功能。 關(guān)于多進(jìn)程和多線程, 我覺(jué)得 最 核心 的一句話是 “進(jìn)程是資源分配的最小單位,線程是CPU調(diào)度的最小單位 ”。不同 端口的 收發(fā)之間就存在 并發(fā) 情況 , 這樣我們就應(yīng)該 應(yīng)該 建立多個(gè) 不同的 進(jìn)程 去分別完成信息的 收發(fā) 。 對(duì)于線程的并發(fā)情況我們就要建立多個(gè)線程去出來(lái) 。 多線程與多進(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)的 連接。 用eclipse+CDT 可以 自動(dòng)生成 makefile 文件,比較適合偏愛(ài)圖形界面的開發(fā)人員。 方案二: 用 eclipse 加 CDT+GCC+GDB,雖然 eclipse 擁有 方便的 UI 界面 , 配置開發(fā)環(huán)境有點(diǎn) 復(fù)雜 ,如果配置好了,開發(fā)的效率還是不錯(cuò)的。 Vi 編輯器 可以執(zhí)行 文字 輸出、 文字 刪除、 文字 查找、 文字 替換、 文件 塊操作等眾多文本操作,用戶 也 可以根據(jù)自 身的 需要對(duì)其進(jìn)行 相應(yīng)的 定制 和二次開發(fā) ,這是其他 編輯程序 所 不能達(dá)到的效果 。在 Linux 上也有 許多 UI 界面的 編輯器 ,但 VI在系統(tǒng)和 服務(wù)器管理 中的 相應(yīng)的 功能是 UI編輯器 不可以達(dá)到的 。 開發(fā)工具的選擇 方案一: vi 編輯器, vi 編輯器 是 Linux 上最基本的 文本編輯器 , 它是以 字符 模式 為核心的 。 方案三: SuSE Linux 系統(tǒng), SuSE 是歐洲最流行的 Linux 發(fā)行版,而且 SuSE 是軟件國(guó)際化的先驅(qū),讓軟件支持各國(guó)語(yǔ)系,貢獻(xiàn)頗豐, SuSE 也是用 RPM 作為軟件安裝管理程序,不過(guò) SuSE 并不適合新手使用,提供了非常多的工具軟件,全部安裝 需 的硬盤空間,安裝過(guò)程也較為復(fù)雜。 方案二: 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 的硬盤空間。 系統(tǒng)的選擇 方案一:紅帽子系統(tǒng)即 Red Ha 系統(tǒng) 是目前銷售量最高、安裝最簡(jiǎn)便、最適合初學(xué)者的Linux 發(fā)行版,也是目前世界上最流行的 Linux 發(fā)行套件,它的市場(chǎng)營(yíng)銷、包裝及服務(wù)做的相當(dāng)不錯(cuò),自行開發(fā)了 RPM 套件管理程序及 X 桌面環(huán)境 Gnome 的眾多軟件并將其源代碼回饋給 Open Source munity。 (4) 完成通信以后我們需要 關(guān)閉此 Socket 套接字并且釋放相應(yīng)的其他銷耗系統(tǒng)的操作 。 使用 Socket 套接字 進(jìn)行網(wǎng)絡(luò)通信的 開發(fā) 過(guò)程如 下面的 步驟: (1) 建立一個(gè) Socket 套接字 (2) 按 我們所需要的 要求配置 好 Socket 套接字 ,將 socket 連接到 遠(yuǎn)程 server 端或者是本機(jī) server 端 或給 Socket 套接字 指定本地協(xié)議端口 號(hào) 。所以采用 C/S模型 進(jìn)行網(wǎng)絡(luò)聊天 系統(tǒng)的設(shè)計(jì) 需要分別編寫 client 端 和 Server 端 的 源代碼 , client 端 和 Server 端 之間相互通信的程序流程如實(shí)驗(yàn)圖 13 所示。 在 C/S模型 中,多個(gè) 在同樣的內(nèi)網(wǎng)中的計(jì)算 機(jī)都作 為 client 端 ,與 端口號(hào)和 ip 進(jìn)行連接,并通過(guò) Server 端傳遞 信息。 Server端馬上會(huì)根據(jù) client 端發(fā)送的請(qǐng)求從而執(zhí)行對(duì)應(yīng)操作以至于達(dá)到 Server 端的要求。在 TCP/IP 應(yīng)用中,多數(shù)網(wǎng)絡(luò)應(yīng)用程序是使用 C/S 模型設(shè)計(jì)的。 圖 12 TCP連接的釋放過(guò)程 通過(guò)以上兩種方案的比較,考慮適用性,本次課題我選擇了選擇 TCP 通信協(xié)議。 如果計(jì)算機(jī)之間使用通信 方式是 TCP 通信 , 則計(jì)算機(jī)之間的 連接過(guò)程需要三次握手實(shí)現(xiàn),如 下圖 11 所示。 但是 TCP 不 能 提供 廣播和多播 這些信息 服務(wù)。 TCP 通信 TCP 是傳輸控制協(xié)議的簡(jiǎn)稱, TCP 可以 提供一條全雙工的、可靠的信道。 UDP 在傳送數(shù)據(jù)之前不需要先建立連接,遠(yuǎn)地主機(jī)的傳輸層在收到 udp 數(shù)據(jù)后,不 能 給出任何確認(rèn) 信息 ,所以不能保證其交付時(shí) 信息的 可靠 性 。最后一個(gè)選項(xiàng)是退出,銷毀對(duì)應(yīng)線程及文件描述符。另外,如果其他人下線時(shí)。然后可以和其進(jìn)行私聊和文件傳送。 當(dāng)有多個(gè)客戶端登陸時(shí),客戶端界面會(huì)顯示其他用戶的用戶名??蛻舳俗?cè)成功會(huì)把客戶端信息保存到鏈表和文件中。每連接一個(gè)客戶端就簡(jiǎn)歷一個(gè)線程去監(jiān)聽客戶端請(qǐng)求。 本文的研究?jī)?nèi)容 本課題的任務(wù)是設(shè)計(jì)一個(gè)支持多人群聊以及用戶間私聊和文件傳送的聊天系統(tǒng)。集市模型 就是為 Linux 這種獨(dú)特的自由流暢的開發(fā)模型已被命名。 ( 3) Linux 的明天 Linux 最強(qiáng)大的生命力在于 其 開源 。 現(xiàn)在 的 Linux 的 UI 界面 也在繼續(xù)完善。它既被當(dāng)作郵件服務(wù)器的一種候選平臺(tái) ,也被當(dāng)作一種強(qiáng)壯而安全的防火墻。 ( 2) Linux 的今天 作為服務(wù)器級(jí)的操作系統(tǒng) ,在廣大的開發(fā)者的共同努力下 Linux操作系統(tǒng) 已經(jīng) 非常 成熟了。后來(lái)他 在英特網(wǎng)的幫助下在在 1994 年 將 Linux 升級(jí)到 版本。 ( 1) Linux 的昨天 1991 年 ,一名叫 Linus Torvalds 的芬蘭大學(xué)生 覺(jué)得 Unix 各種版本對(duì)于 一個(gè)類型的機(jī)器的兼容性比較差( 80386 類的機(jī)器 ) ,于是 他決定要開發(fā)出一個(gè)全功能的、 并且 支持 POSIX標(biāo)準(zhǔn)的、類 似于 Unix 的操作系統(tǒng) 的系統(tǒng) 內(nèi)核 ,該系統(tǒng) 取得 了 BSD 和 System V 的 精華 ,同進(jìn)去除 了它們的 糟粕 。 Unix 不斷發(fā)展 壯大 ,許多 版本被應(yīng)用到不同 類型的 的計(jì)算機(jī)使用。加州大學(xué)伯克利分校的計(jì)算機(jī)系就是 在這眾多的大學(xué)中 ,并 對(duì) Unix進(jìn)行了 完善并且 增加了許多新的特點(diǎn) ,這就是 被廣大的開發(fā)者所熟知的 的 BSC 版本的Unix。后來(lái) ,又在 PDP11 上用 C 語(yǔ)言重新編寫 系統(tǒng) ,把 Unix 做成為了一個(gè)文本處理系統(tǒng) ,這 樣極大的促進(jìn)了 Unix 在貝爾實(shí)驗(yàn)室得的 使 用。 就這樣 GPL 保證了 Linux 的優(yōu)點(diǎn) 不僅現(xiàn)在自由可用 ,而且經(jīng)過(guò)修改后的系統(tǒng) 都仍然可以自由使用。按照 GNU 的 相關(guān) 規(guī)定 ,Linux 的源代碼可以 在網(wǎng)上免費(fèi)自由 獲取 ,這一點(diǎn)為我們學(xué)習(xí)者提供了極大的方便 。 Richard 創(chuàng)建 的自由軟件聯(lián)盟 推出 了兩種許可證 ,GNU是 通用公共許可證 (GNU Gneral Public License,GPL)和 GNU函數(shù)庫(kù)通用 公共許可證 (GNU Library Gneral Public License,LGPL)。作為一種 很棒的 操作系統(tǒng) ,它具有與Unix,Mac,Windows 和 Windows NT 相似的 的功能 ,但是其中又會(huì)有不同的地方 。 linux 介紹 Linux 是一種 開 源的 操作系統(tǒng) ,它 擁有 像 Windows 和 Mac 那樣的功能齊全的 UI 界面( GUI,Graphical User Interface)。好的軟件工程在功能與實(shí)現(xiàn)上面是有明確的區(qū)分的, TCP/IP 沒(méi)有很好地做到這點(diǎn)。數(shù)據(jù)能夠用于任何目的,并且能夠很輕易地取代以前由專有數(shù)據(jù)網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)。這是一個(gè)簡(jiǎn)單的解釋。而 IP 是給 因特網(wǎng) 的每一臺(tái)電腦規(guī)定一個(gè)地址。協(xié)議采用了 4層的層級(jí)結(jié)構(gòu),每一層都呼叫它的下一層所提供的協(xié)議來(lái)完成自己的 需求。 題 TCP/IP 介紹 Transmission Control Protocol/Inter Protocol 的簡(jiǎn)寫,中譯名為傳輸控制協(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é)議組成。起先, TCP/IP( Transmission Control Protocol/Inter Protocol)是由美國(guó)國(guó)防部于 70 年代提出來(lái)的,將中大型機(jī)連成的網(wǎng)絡(luò)互連起來(lái),并按 TCP/IP 協(xié)議這種模式實(shí)現(xiàn)異網(wǎng)之間通訊,接著美國(guó)國(guó)防部高級(jí)計(jì)劃局( DARPA)于 70 年代末提出了幾種國(guó)際互連( Inter)技術(shù)。由于 LAN Manager 與 Windows 的聯(lián)系;使它有更高的的性格比。尤其在 NetWare 386 版中實(shí)現(xiàn)了服務(wù)器軟件的“分布式結(jié)構(gòu)策略”、“橫向信息共享”、“報(bào)文傳送”技術(shù)、增添了“ TCP/IP 棧”、實(shí)現(xiàn)了“ SNA 協(xié)議”和“開放式數(shù) 據(jù)鏈路接口”等一系列新技術(shù),使 NovellLAN 更深入人心,擴(kuò)大了市場(chǎng)。反過(guò)來(lái)又推 動(dòng)其發(fā)展,同時(shí) Novell LAN 采取了開放協(xié)議技術(shù)( OPT),允許各種網(wǎng)絡(luò)協(xié)議緊密結(jié)合,進(jìn)而在 NetWare 386 版中采用了 NLM 模塊的組合技術(shù),可以實(shí)現(xiàn)異機(jī)種聯(lián)網(wǎng)的難題。 Novel LAN 采取了“將網(wǎng)絡(luò)協(xié)議軟件與網(wǎng)絡(luò)操作系統(tǒng)
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1