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

正文內(nèi)容

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

  

【正文】 r 端使用 accept()方法打開(kāi)一個(gè) socket 連接 . ( 2)客戶在 host 和 port 端口建立連接 . ( 3) server 端和 client 端使用 InputStream 和 OutputStream 進(jìn)行通信 . . 結(jié)構(gòu)流程 . server 端結(jié)構(gòu)流程圖 server端通過(guò) socket()系統(tǒng)調(diào)用創(chuàng)建一個(gè) Socket數(shù)組后 (即設(shè)定了接受連接客戶的最大數(shù)目 ),與指定的本地端口綁定 bind(),就可以 在端口進(jìn)行 listen().如果有 client 端連接請(qǐng)求,則在數(shù)組中選擇一個(gè)空 Socket,將 client 端 地址賦給這個(gè) 成功的客戶就可以在 server 端上聊天了。 /*用連接地址自動(dòng)填充 ip*/ Bind(sockfd,(stuct sockaddr*)amp。 參數(shù)說(shuō)明: How的值為下面一種: 0不允許繼續(xù)接收; 1不允許繼續(xù)發(fā)送; 2不允許繼續(xù)發(fā)送和接收。 作用:在面向連接的系統(tǒng)中 client 端連接 server 端時(shí)使用, connect 必須在 bind 后使用。 參數(shù)說(shuō)明: Sockfd:表示調(diào)用返回的文件描述符。AF_INT 是 可以用于 Inter 的,因而可以允許在遠(yuǎn)程主機(jī)之間通信,實(shí)驗(yàn)中使用 AF_INT。 exceptset 用來(lái)檢查意外狀態(tài)的文件描述符。 在大多數(shù)情況下系統(tǒng)的責(zé)任 之一包括 檢查 fd_set 能包括任意值的文件描述符, 但是當(dāng)我們知道我們的文件描述符的多少時(shí) 你應(yīng)該檢查 /修改宏 FD_SETSIZE的值。set)。 POLLOUT 如果設(shè)備可以無(wú)阻塞地些,就返回該值 POLLWRNORM 設(shè)備已經(jīng)準(zhǔn)備好,可以寫了,就返回該值。對(duì)于 client 端,一旦我們輸入了一行文字發(fā),系統(tǒng)會(huì) 自動(dòng)的讀取,進(jìn)而發(fā)送給系統(tǒng)內(nèi)的server 端,然后由 server 端反饋給對(duì)應(yīng)的目標(biāo) client 端。這樣,當(dāng) 一個(gè) client 端的請(qǐng)求 被阻塞時(shí),不至于影響 其它的 client 端 的 正常工作 。和 在 windows 下開(kāi)發(fā) 基本相似。 通過(guò)以上三種方案的比較,考慮適用性,和可操作性,選擇 Red hat Linux 操作系統(tǒng)。 (3) 按要求通過(guò) Socket 套接字 發(fā)送和接受 相應(yīng)的 數(shù)據(jù) 與信息 。 server 端一直處于等待狀態(tài),當(dāng)一個(gè) client 端提出請(qǐng)求時(shí)。 TCP 在數(shù)據(jù)傳送之前必須先建立 相應(yīng)的 連接,數(shù)據(jù)傳送 完成 后 必須 釋放連接。而好友界面的倒數(shù)第二個(gè)為群聊選擇,當(dāng)進(jìn)入群聊時(shí),可以實(shí)現(xiàn)多人同時(shí)聊天。 首先服務(wù)器會(huì)初始化,然后等待客戶端的連接。 Linux 的企業(yè)級(jí)特性 : Linux 系統(tǒng)不僅 支持多處理器、支持大型文件系統(tǒng)、日志文件系統(tǒng) 而且在 密集型計(jì)算和高可用性集群技術(shù) 上面 也逐步成熟。而 Linux最初 就 是專門為 Intel 的個(gè)人計(jì)算機(jī)設(shè)計(jì)的。 GPL 極大的 體現(xiàn)了 Stallman 的思想:只要用戶所做的修改是有利于系統(tǒng)發(fā)展的 ,用戶可以自由地使用、拷貝、查詢、重用、修改 也可以 發(fā)布這個(gè) 修改后的 軟件。 第二,主機(jī) 網(wǎng)絡(luò)層本身并不是實(shí)際的一層,它定義了網(wǎng)絡(luò)層與數(shù)據(jù)鏈路層的接口。通俗而言: TCP 負(fù)責(zé)發(fā)現(xiàn) 傳輸 的問(wèn)題,一有問(wèn)題就發(fā)出信號(hào),要求重新傳輸,直到所有 數(shù)據(jù)安全 正確地傳輸?shù)侥康牡亍? 與此同時(shí),微軟的 LAN Manager 和 局域網(wǎng)版除了有一般的基礎(chǔ)的優(yōu)點(diǎn),還應(yīng)用了“客戶機(jī)/服務(wù)器”( Client/Server)的強(qiáng)大內(nèi)網(wǎng)絡(luò)體系結(jié)構(gòu),以及基于多用戶,多任務(wù)并發(fā)先進(jìn)的 OS/2 作為服務(wù)器,并以 OS/2, Unix, VMS 和 Windows NT 作為系統(tǒng)的開(kāi)發(fā)平臺(tái),更方便與異類機(jī)種訪問(wèn)網(wǎng)絡(luò)。 正如大家知道的那樣, 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 的兩大支柱之一。具稱 1978 年全世界約有 700 萬(wàn)人每天使用計(jì)算機(jī),而到 1998 年上升到 5000 萬(wàn)人,目前全世界已經(jīng)擁有超過(guò)一億臺(tái)的計(jì)算機(jī),預(yù)計(jì)每天上機(jī)人數(shù)可達(dá) 2 億以上。 在網(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ò)。 本次設(shè)計(jì)的聊天 通信使用全雙工 ,主要實(shí)現(xiàn)了功能如 :用戶的 帳號(hào)與密碼的 注冊(cè)與登錄 ,客戶點(diǎn)對(duì)點(diǎn) 聊天 ,客戶 之間 的 群聊 ,以及文件的發(fā)送與接收。測(cè)試運(yùn)行后的可靠性滿足 Linux網(wǎng)絡(luò)聊天的基本要求。 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 的代表。計(jì)算機(jī)的性能價(jià)格比以每年 25%的速度在提高。 1992 年 10 月 Microsoft 又搶先發(fā)布了 LAN ,以更 加領(lǐng)先于 Novell 的 NetWare 386 ,但后者立即隨后推出了 NetWare 。由于 LAN Manager 與 Windows 的聯(lián)系;使它有更高的的性格比。而 IP 是給 因特網(wǎng) 的每一臺(tái)電腦規(guī)定一個(gè)地址。 linux 介紹 Linux 是一種 開(kāi) 源的 操作系統(tǒng) ,它 擁有 像 Windows 和 Mac 那樣的功能齊全的 UI 界面( GUI,Graphical User Interface)。 就這樣 GPL 保證了 Linux 的優(yōu)點(diǎn) 不僅現(xiàn)在自由可用 ,而且經(jīng)過(guò)修改后的系統(tǒng) 都仍然可以自由使用。 ( 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)去除 了它們的 糟粕 。 現(xiàn)在 的 Linux 的 UI 界面 也在繼續(xù)完善。每連接一個(gè)客戶端就簡(jiǎn)歷一個(gè)線程去監(jiān)聽(tīng)客戶端請(qǐng)求。另外,如果其他人下線時(shí)。 但是 TCP 不 能 提供 廣播和多播 這些信息 服務(wù)。 Server端馬上會(huì)根據(jù) client 端發(fā)送的請(qǐng)求從而執(zhí)行對(duì)應(yīng)操作以至于達(dá)到 Server 端的要求。 (4) 完成通信以后我們需要 關(guān)閉此 Socket 套接字并且釋放相應(yīng)的其他銷耗系統(tǒng)的操作 。 開(kāi)發(fā)工具的選擇 方案一: vi 編輯器, vi 編輯器 是 Linux 上最基本的 文本編輯器 , 它是以 字符 模式 為核心的 。 用eclipse+CDT 可以 自動(dòng)生成 makefile 文件,比較適合偏愛(ài)圖形界面的開(kāi)發(fā)人員。 關(guān)于多進(jìn)程和多線程, 我覺(jué)得 最 核心 的一句話是 “進(jìn)程是資源分配的最小單位,線程是CPU調(diào)度的最小單位 ”。 方案一:當(dāng)我們使用的 poll 函數(shù) 返回時(shí),會(huì) 返回 一個(gè)文件是讀寫標(biāo)志,應(yīng)用程序根據(jù)不同的 返回 標(biāo)志 去 讀寫相應(yīng)的文件,實(shí)現(xiàn) 不用阻塞就可以完成 讀寫。通常地做法是( POLLOUT|POLLNORM) POLLWRBAND 于 POLLRDBAND 類似 表 21 poll函數(shù)返回的位掩碼及其含義 方案二: select 函數(shù): select()函數(shù)的接口主要 以 39。 FD_SET(fd, amp。這個(gè)值是 與 系統(tǒng)相關(guān)的,同時(shí) 我們也要 檢查 Linux 系統(tǒng)中的 自帶的 select() 的 man 手冊(cè)。 (注:錯(cuò)誤并不是意外狀態(tài) ) timeout NULL 指針代表 一直 等待,否則是指向 timeval 結(jié)構(gòu)的指針,代表最 長(zhǎng)等待時(shí)間。 Type:網(wǎng)絡(luò)程序所采用的通信協(xié)議,可以取 SOCK_STREAM 或 SOCK_DGRAM。 backlog:表示接入隊(duì)列允許的連接數(shù)目。 參數(shù)作用: sockfd:表示 socket 的文件描述符。 (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。my_addr,sizeof(stuct sockaddr))。 圖 32 server端結(jié)構(gòu)流程圖 客戶端結(jié)構(gòu)流程圖 客戶通過(guò) Socket 套接字建立與 server 端的連接。同時(shí)對(duì)密碼也要求保密,將密碼加密后再存入數(shù)據(jù)文件。 (10) 客戶端登錄時(shí)若有其他人在線,則可用↑↓調(diào)整,并按回車選擇與其私聊。 5) 注銷 運(yùn)行結(jié)果如下。 圖 47 客戶端 1002 與 1001 私聊窗口 客戶端 100 1002 和 1003 分別選中群聊后,進(jìn)入群聊窗口,如圖 48。 經(jīng)過(guò)近了兩周的設(shè)計(jì)和開(kāi)發(fā),聊天 軟件 的設(shè)計(jì)完畢。最后要感謝母校給我提供這么好的學(xué)習(xí)環(huán)境。我還要感謝學(xué)院的各位工作人員,他們細(xì)致的工作使我和同學(xué)們的學(xué)習(xí)和生活井然有序。 本論文的完成遠(yuǎn)非終點(diǎn),文中的不足和淺顯之處則是我新的征程上一個(gè)個(gè)新的起點(diǎn)。ksv*3t nGK8!z89Am YWpazadNuKNamp。 ksv*3t nGK8! z89Am YWpazadNuKNamp。 ksv*3tnGK8! z89Am YWpazadNuKNamp。 ksv*3t nGK8! z89Am YWpazadNuKNamp。849Gx^Gj qv^$UE9wEwZQcUE%amp。 ksv*3t nGK8!z89Am YWpazadNuKNamp。 ksv*3t nGK8!z89Am YWpazadNuKNamp。 849Gx^Gjqv^$UE9wEwZQcUE%amp。MuWFA5ux^Gj qv^$UE9wEwZQcUE%amp。 849Gx^Gj qv^$UE9wEwZQcUE% amp。 MuWFA5ux^Gj qv^$UE9wEwZQcUE%amp。 MuWFA5uxY7JnD6YWRrWwc^vR9CpbK! zn%Mz849Gx^Gj qv^$UE9wEwZQcUE%amp。MuWFA5ux^Gjqv^$UE9wEwZQcUE% amp。 MuWFA5uxY7JnD6YWRrWwc^vR9CpbK! zn% Mz849Gx^Gj qv^$U*3t nGK8!z89Am YWpazadNuKNamp。 MuWFA5ux^Gj qv^$UE9wEwZQcUE%amp。MuWFA5uxY7JnD6YWRr Wwc^vR9CpbK!zn%Mz849Gx^Gj qv^$U*3t nGK8! z89Am YWpazadNuKNamp。ksv*3t nGK8!z89Am YWpazadNuKNamp。 ksv*3t nGK8!z89Am YWpazadNuKNamp。 gTXRm 6X4NGpP$vSTTamp。 gTXRm 6X4NGpP$vSTTamp。 gTXRm 6X4NGpP$vSTTamp。 qYpEh5pDx2zVkumamp。 qYpEh5pDx2zVkumamp。 ksv*3t nGK8!z89Am YWv*3t nGK8! z89Am YWpazadNuKNamp。 ksv*3t nGK8! z89Am YWpazadNuKNamp。 MuWFA5ux^Gj qv^$UE9wEwZQcUE%amp。 MuWFA5uxY7JnD6YWRrWwc^vR9CpbK! zn% Mz 849Gx^Gj qv^$UE9wEwZQcUE%amp。 MuW FA5uxY7JnD6YWRr Wwc^vR9CpbK! zn%Mz849Gx^Gj qv^$UE9wEwZQcUE%amp。 qYpEh5pDx2zVkum amp。 qYpEh5pDx2zVkum amp。 qYpEh5pDx2zVkumamp。 gTXRm 6X4NGpP$vSTTamp。 qYpEh5pDx2zVkum amp。 gTXRm 6X4NGpP$vSTTamp。 gTXRm 6X4NGpP$vSTTamp。 gTXRm 6X4NGpP$vSTTamp。gTXRm 6X4NGpP$vSTTamp。 gTXRm 6X4NGpP$vSTTamp。 gTXRm 6X4NGpP$vSTTamp。 qYpEh5pDx2zVkum amp。qYpEh5pDx2zVkumamp。 gTXRm 6X4NGpP$vSTTamp。 qYpEh5pDx2zVkum amp。 qYpEh5pDx2zVkumamp。 qYpEh5pDx2zVkumamp。 qYpEh5pDx2zVkum amp。 6a
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1