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

正文內容

基于linux操作系統(tǒng)的聊天軟件的設計畢業(yè)設計說明書(存儲版)

2025-04-07 09:56上一頁面

下一頁面
  

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