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

正文內(nèi)容

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

  

【正文】 iability in linux in chat . Keywords : linux, socket, server side , client end , work programming 目 錄 1 緒 論 1 課題研究的背景及意義 1 TCP/IP 介紹 2 本文的研 究?jī)?nèi)容 4 2 技術(shù)說(shuō)明與方案選擇 5 通信方式 5 UDP 通信 5 TCP 通信 5 客戶 /服務(wù)器模型 6 網(wǎng)絡(luò)套接字( socket)的概念 7 多線程的概念 7 3 系統(tǒng)實(shí)現(xiàn) 11 Linux 提供的有關(guān) Socket 的系統(tǒng)調(diào)用 11 實(shí)驗(yàn)過(guò)程說(shuō)明(使用 TCP/IP) 13 TCP 通信實(shí)現(xiàn) 14 4 運(yùn)行效果 29 結(jié)束語(yǔ) 34 致謝 35 參考文獻(xiàn) 36 附錄 A 服務(wù)器程序 38 附錄 B 客戶端程序 47 1 緒 論 課題研究的背景及意義 隨著計(jì)算機(jī)應(yīng)用技術(shù)的日益普及,網(wǎng)絡(luò)也遍及到我們生活的每個(gè)角落,很好的利用這一資源,將成為我們工作和學(xué)習(xí),帶來(lái)極大的方便。 本設(shè)計(jì)采用 TCP/IP協(xié)議 這樣可以 保證連接可靠 ,而且 項(xiàng)目管理中釆用 linux流行的 gcc和 makefile編譯 ,大大 提高了編譯和調(diào)試效率 ,提高 了項(xiàng)目完成 的效率 ,但是為了 模擬 幾 個(gè) client端 我們就需要在 pc機(jī)上再 安裝一個(gè)虛擬系統(tǒng)來(lái)操作 client端。并且,你還可以和外國(guó)友人交流學(xué)習(xí)。 90 年代計(jì)算機(jī)網(wǎng)絡(luò)化大趨勢(shì)尤為明顯。當(dāng)前國(guó)際 LAN 的市場(chǎng)上,兩雄稱霸,龍爭(zhēng)虎斗的局面,將可能持續(xù)相當(dāng)長(zhǎng)一段時(shí)間。尤其在 NetWare 386 版中實(shí)現(xiàn)了服務(wù)器軟件的“分布式結(jié)構(gòu)策略”、“橫向信息共享”、“報(bào)文傳送”技術(shù)、增添了“ TCP/IP ?!?、實(shí)現(xiàn)了“ SNA 協(xié)議”和“開(kāi)放式數(shù) 據(jù)鏈路接口”等一系列新技術(shù),使 NovellLAN 更深入人心,擴(kuò)大了市場(chǎng)。協(xié)議采用了 4層的層級(jí)結(jié)構(gòu),每一層都呼叫它的下一層所提供的協(xié)議來(lái)完成自己的 需求。好的軟件工程在功能與實(shí)現(xiàn)上面是有明確的區(qū)分的, TCP/IP 沒(méi)有很好地做到這點(diǎn)。按照 GNU 的 相關(guān) 規(guī)定 ,Linux 的源代碼可以 在網(wǎng)上免費(fèi)自由 獲取 ,這一點(diǎn)為我們學(xué)習(xí)者提供了極大的方便 。 Unix 不斷發(fā)展 壯大 ,許多 版本被應(yīng)用到不同 類型的 的計(jì)算機(jī)使用。它既被當(dāng)作郵件服務(wù)器的一種候選平臺(tái) ,也被當(dāng)作一種強(qiáng)壯而安全的防火墻。 本文的研究?jī)?nèi)容 本課題的任務(wù)是設(shè)計(jì)一個(gè)支持多人群聊以及用戶間私聊和文件傳送的聊天系統(tǒng)。然后可以和其進(jìn)行私聊和文件傳送。 TCP 通信 TCP 是傳輸控制協(xié)議的簡(jiǎn)稱, TCP 可以 提供一條全雙工的、可靠的信道。在 TCP/IP 應(yīng)用中,多數(shù)網(wǎng)絡(luò)應(yīng)用程序是使用 C/S 模型設(shè)計(jì)的。 使用 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) 。 方案三: SuSE Linux 系統(tǒng), SuSE 是歐洲最流行的 Linux 發(fā)行版,而且 SuSE 是軟件國(guó)際化的先驅(qū),讓軟件支持各國(guó)語(yǔ)系,貢獻(xiàn)頗豐, SuSE 也是用 RPM 作為軟件安裝管理程序,不過(guò) SuSE 并不適合新手使用,提供了非常多的工具軟件,全部安裝 需 的硬盤空間,安裝過(guò)程也較為復(fù)雜。 方案二: 用 eclipse 加 CDT+GCC+GDB,雖然 eclipse 擁有 方便的 UI 界面 , 配置開(kāi)發(fā)環(huán)境有點(diǎn) 復(fù)雜 ,如果配置好了,開(kāi)發(fā)的效率還是不錯(cuò)的。不同 端口的 收發(fā)之間就存在 并發(fā) 情況 , 這樣我們就應(yīng)該 應(yīng)該 建立多個(gè) 不同的 進(jìn)程 去分別完成信息的 收發(fā) 。 因此我在收發(fā)信息方面使用了 I/O 多路復(fù)用去處理,即在處理群聊私聊的信息傳送時(shí)。 POLLERR 如果設(shè) 備發(fā)生錯(cuò)誤,就返回該值。 FD_ZERO(amp。 在過(guò)去,一個(gè) fd_set 通常是小于 32 個(gè)文件描述符 的 ,因?yàn)?fd_set 其實(shí) 僅僅使用 了一個(gè)int 的比特矢量來(lái)實(shí)現(xiàn) 它。 writeset 用來(lái)檢查可寫性的一組文件描述符。 其中, AF_UNLX 只能夠用于 UNIX 系統(tǒng)進(jìn)程間通信 。 作用:監(jiān)聽(tīng)。 (5) connect() 格式: int connect( int sockfd , struct sockaddr *serv_addr , int addrlen)。 close() 和 shutdown() 格式: close( int sockfd) 或 int shutdown(int sockfd , int how)。 /* 將端口給其賦值 */ =INADDR_ANY。 本系統(tǒng)采用 C/S(Client/Server)體系結(jié)構(gòu)(見(jiàn)圖 31),即 client 端 /server 端體系結(jié)構(gòu) .其特點(diǎn)是 client 端 只裝載應(yīng)用軟件,消息處理、用戶監(jiān)控等復(fù)雜的處理放在 server端中實(shí)現(xiàn),這樣就可以大大簡(jiǎn)化 client 端的代碼,增加了系統(tǒng)的穩(wěn)定性。 首先,用戶要自己輸入用戶名和密碼。 (6) 再打開(kāi)另一個(gè)窗口,運(yùn)行 client 1003。 6) 進(jìn)入群聊 7) 輸入 quit!結(jié)束群聊。 圖 45 1001 好友列表窗口 好友 1002 登陸成功后, 1001 的好友列表會(huì)自動(dòng)刷新,如圖 46。而且成功的實(shí)現(xiàn)了 client 端的注冊(cè)與注銷。也很感謝近四年來(lái)教我的各科任課老師,是他們豐富我的專業(yè)知識(shí),能夠運(yùn)用于設(shè)計(jì)中。從初稿到定稿, 凌云 老師不厭其煩,一審再審,大到篇章布局的偏頗,小到語(yǔ)句格式的瑕疵,都一一予以指出。在我需要幫助的時(shí)候, 同學(xué)們 伸出溫暖的雙手,鼎立襄助。 qYpEh5pDx2zVkumamp。 qYpEh5pDx2zVkum amp。 qYpEh5pDx2zVkumamp。 qYpEh5pDx2zVkumamp。 QA9wkxFyeQ^! dj sXuyUP2kNXpRWXm Aamp。 qYpEh5pDx2zVkumamp。qYpEh5pDx2zVkumamp。 QA9wkxFyeQ^! djsXuyUP2kNXpRWXm Aamp。 gTXRm 6X4NGpP$vSTTamp。gTXRm 6X4NGpP$vSTTamp。 gTXRm 6X4NGpP$vSTTamp。 gTXRm6X4NGpP$vSTTamp。 gTXRm 6X4NGpP$vSTTamp。gTXRm 6X4NGpP$vSTTamp。 gTXRm 6X4NGpP$vSTTamp。 gTXRm6X4NGpP$vSTTamp。 qYpEh5pDx2zVkumamp。 MuWFA5uxY7JnD6YWRrWwc^vR9amp。 MuWFA5uxY7JnD6YWRrWwc^vR9CpbK! zn% Mz849Gx^Gjqv^$UE9wEwZQcUE% amp。 MuWFA5ux^Gj qv^$UE9wEwZQcUE%amp。MuWFA5uxY7JnD6YW Rr Wwc^vR9CpbK! zn%Mz849Gx^Gj qv^$UE9wEwZQcUE%amp。 MuWFA5uxY7JnD6YWRr Wwc^vR9CpbK! zn% Mz849Gx^Gj qvadNuKNamp。 ksv*3tnGK8! z89Am YWpazadNuKNamp。 MuWFA5uxY7JnD6YWRrWwc^vR9CpbK! zn% Mz849Gx^Gj。 qYpEh5pDx2zVkumamp。 gTXRm 6X4NGpP$vSTTamp。 gTXRm 6X4NGpP$vSTTamp。 gTXRm 6X4NGpP$vSTTamp。 ksv*3t nGK8! z89Am YWv*3t nGK8! z89Am YWpazadNuKNamp。 ksv*3t nGK8! z89Am YWv*3tnGK8! z89Am YWpazadNuKNamp。ksv*3t nGK8!z89Am YWpa zadNuKNamp。 MuWFA5uxY7JnD6YWRr Wwc^vR9CpbK! zn% Mz849Gx^Gj qv^$UE9wEwZQcUE%amp。 ksv*3t nGK8! z89Am v^$UE9wEwZQcUE%amp。MuWFA5uxY7JnD6YWRr Wwc^vR9CpbK!zn%Mz849Gx^Gj qv^$UE9wEwZQcUE%amp。 MuWFA5uxY7JnD6YWRrWwc^vR9CpbK! zn% Mz849Gx^Gjqv^$UE9wEwZQcUE% amp。 MuWFA5uxY7JnD6YWRr Wwc^vR9CpbK! zn%Mz849Gx^Gj qv^$UE9wEwZQcUE%amp。MuWFA5uxY7JnD6YWRr Wwc^vR9CpbK! zn%Mz849Gx^Gj qv^$UE9wEwZQcUE%amp。MuWFA5uxY7JnD6YWRrWwc^vR9CpbK!zn% Mz849Gx^Gj qv^$UE9wEwZQcUE% amp。 MuWFA5uxY7JnD6YWRrWwc^vR9CpbK! zn% Mz849Gx^Gj qv^$UE9wEwZQcUE%amp。 ksv*3t nGK8! z8vGt YM*Jgamp。 ksv*3t nGK8! z89Am YWpazadNuKNamp。MuWFA5uxY7JnD6YWRrWwc^vR9CpbK!zn% Mz849Gx^G89Am UE9aQGn8xp$Ramp。 ksv*3t nGK8! z8vGt YM*Jgamp。 ksv*3t nGK8! z89Am YWpazadNuKNamp。 ksv*3tnGK8! z89Am UE9aQGn8xp$Ramp。 ksv*3t nGK8! z89Am YWpazadNuKNamp。 UE9aQGn8xp$Ramp。沒(méi)有他們就沒(méi)有我,我的點(diǎn)滴成就都來(lái)自他們。 我要感謝我的指導(dǎo)教師 凌云老師 雖身負(fù)教學(xué)、科研重任,仍抽出時(shí)間,不時(shí)召集我和同門以督責(zé)課業(yè),耳提面命,殷殷之情盡在諄諄教誨中。 這次畢業(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ú)微不至的幫助。 圖 410 客戶端 1001 注銷成功 上述運(yùn)行結(jié)果表明, client 端間的消息收取以及文件傳送可以通過(guò) server 端被對(duì)方成功接收,并且成功實(shí)現(xiàn)了系統(tǒng)的基本功能,如私聊給功能、群聊功能。 圖 43 1001注冊(cè)成功 然后退到歡迎界面,回車選擇登陸,如圖 44。 6) 進(jìn)入群聊 7) 輸入 quit!結(jié)束群聊。 (4) 再打開(kāi)另一個(gè)窗口,運(yùn)行 client 1001。用戶登錄的表單應(yīng)該嵌入整體的結(jié)構(gòu)當(dāng)中。 (3) 主機(jī)接收請(qǐng)求,進(jìn)行數(shù)據(jù)通信 1)主機(jī)利用 accept 接收請(qǐng)求。 =AF_INET。 格式 2: int recv (int sockfd , void *buf,int len, usigned int flags)。 addr:表示指向局部的數(shù)據(jù)結(jié)構(gòu) struct sockaddrin的指針。 Sockaddr: IP 地址和端口 Addrlen:設(shè)置結(jié)構(gòu)大小長(zhǎng)度。 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)。 其中: nfds 需要檢查的文件描述符個(gè)數(shù),數(shù)值應(yīng)該比是三組 fd_set 中最大數(shù) 更大,而不是實(shí)際文件描述符的總數(shù)。 FD_ISSET(fd, amp。fd_set)是一組文件描述符 (fd)的 大 集合。 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)備好,可以讀了,就返回該值。 I/O 多路復(fù)用 除了可以采用多進(jìn)程和多線程方法去實(shí)現(xiàn)并發(fā)情況之外,還可以采用 I/O 多路復(fù)用這門技術(shù)來(lái)實(shí)現(xiàn)。 對(duì)于線程的并發(fā)情況我們就要建立多個(gè)線程去出來(lái) 。 Vi 編輯器 可以執(zhí)行 文字 輸出、 文字 刪除、 文字 查找、 文字 替換、 文件 塊操作等眾多文本操作,用戶 也 可以根據(jù)自 身
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1