Linux基于TCP的網(wǎng)絡聊天室軟件131.doc_第1頁
Linux基于TCP的網(wǎng)絡聊天室軟件131.doc_第2頁
Linux基于TCP的網(wǎng)絡聊天室軟件131.doc_第3頁
Linux基于TCP的網(wǎng)絡聊天室軟件131.doc_第4頁
Linux基于TCP的網(wǎng)絡聊天室軟件131.doc_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

淮 海 工 學 院 計算機工程學院課程設計報告設計名稱: Linux程序設計 選題名稱: 基于TCP的網(wǎng)絡聊天室的設計與實現(xiàn) 姓 名: 姓 名: 姓 名: 專業(yè)班級: 軟件工程 系 (院): 計算機工程學院 設計時間: 2016.11.162016.12.7 設計地點: 軟件實驗室、教室 成績:指導教師評語: 簽名: 年 月 日1課程設計目的Linux程序設計是一門實踐性很強的計算機專業(yè)基礎課程,課程設計是學習完該課程后進行的一次較全面的綜合練習。其目的在于通過實踐加深學生對Linux程序設計的理論、方法和基礎知識的理解,掌握使用C語言進行Linux程序設計的基本方法,提高運用所學知識分析實際問題、解決實際問題的能力。2課程設計任務與要求:2.1 課程設計要求課程設計選用VIM、GDB和SecureCRT作為開發(fā)平臺以提高開發(fā)效率,盡可能熟練掌握其開發(fā)環(huán)境。采用結構化程序設計技術進行系統(tǒng)的分析設計,在Visio中畫出系統(tǒng)功能結構圖和程序流程圖,并將相應的圖例說明復制到設計報告中。通過這次設計,要求掌握以下內容:1)Linux C編程工具:GCC和GDB2)文件I/O操作3)文件屬性及目錄操作4)終端控制與信號處理5)進程控制6)進程間通信7)流式套接字編程8)線程管理2.2 課程設計任務(大作業(yè)課題一)1)課題名稱:基于TCP的網(wǎng)絡聊天室的設計和實現(xiàn)。2)內容描述:實現(xiàn)目標:一個在Linux下可以使用的聊天軟件,要求實現(xiàn)如下功能:l 采用Client/Server架構l Client A 登陸聊天服務器前,需要注冊自己的ID和密碼l 注冊成功后,Client A 就可以通過自己的ID和密碼登陸聊天服務器l 多個Client X 可以同時登陸聊天服務器之后,與其他用戶進行通訊聊天l Client A成功登陸后可以查看當前聊天室內其他在線用戶Client Xl Client A可以選擇發(fā)消息給某個特定的Client X,即“悄悄話”功能l Client A 可以選擇發(fā)消息全部的在線用戶,即“群發(fā)消息”功能l Client A 在退出時需要保存聊天記錄l Server端維護一個所有登陸用戶的聊天會的記錄文件,以便備查可以選擇實現(xiàn)的附加功能:l Server可以內建一個特殊權限的賬號admin,用于管理聊天室l Admin可以將某個Client X “踢出聊天室”3)附加功能:l 文件傳輸3課程設計說明書3.1 需求分析隨著科學技術和社會的不斷發(fā)展,計算機產(chǎn)業(yè)越來越發(fā)達。人們對于電子信息產(chǎn)品的需求越來越大,在這樣一個信息時代,交流的方式日趨多元化和網(wǎng)絡化。通信產(chǎn)業(yè)的發(fā)展非常迅猛,現(xiàn)在的科技已經(jīng)可以實現(xiàn)很多種網(wǎng)絡交流方式和信息傳播方式,但是聊天室一直是最基礎之一。聊天室技術仍然是我們學習的基礎和重點。本次課題將全面的分析與設計一個網(wǎng)絡聊天室。網(wǎng)絡聊天室現(xiàn)在已經(jīng)有相當成熟的發(fā)展了,QQ,微信等主流的聊天工具是這項技術的代表。在當下成熟的編程環(huán)境下,聊天室的設計與實現(xiàn)是一個重要的基礎練習。下面將簡要介紹一下網(wǎng)絡聊天室的特點:1) 便捷性:擺脫了傳統(tǒng)的通信方式,利用網(wǎng)絡的廉價性,可以使用戶更加自由地相互交流。2) 安全性:網(wǎng)絡環(huán)境下,用戶可以針對地去了解自己想要了解的信息,交流時可以使用虛擬的身份,一定程度上很好地保護了用戶的個人隱私信息。3) 實時性:用戶只要與想要通信的另一方取得聯(lián)系,即可想面對面對話一樣交流。3.2 概要設計本次試驗設計一個網(wǎng)絡聊天室,該軟件采用Client/Server架構。聊天室的功能主要有:1) Client A 登陸聊天服務器前,需要注冊自己的ID和密碼2) 注冊成功后,Client A 就可以通過自己的ID和密碼登陸聊天服務器3) 多個Client X 可以同時登陸聊天服務器之后,與其他用戶進行通訊聊天4) Client A成功登陸后可以查看當前聊天室內其他在線用戶Client X5) Client A可以選擇發(fā)消息給某個特定的Client X,即“悄悄話”功能6) Client A 可以選擇發(fā)消息全部的在線用戶,即“群發(fā)消息”功能7) Client A 在退出時需要保存聊天記錄8) Server端維護一個所有登陸用戶的聊天會的記錄文件,以便備查3.3 詳細設計1) 功能結構圖:2) 程序流程圖:l 注冊:l 登錄:l 傳送文件:l 發(fā)送消息:4課程設計成果4.1 主要模塊設計1)注冊模塊:client.c:server.c:check.c:此截圖是在注冊時系統(tǒng)判斷注冊用戶是否重名的模塊:2)發(fā)送消息模塊:client.c:創(chuàng)建線程處理消息隊列。這是消息處理函數(shù):sever.c:發(fā)送給所有人的消息處理:發(fā)送給指定用戶的消息處理:display.c:顯示發(fā)送的消息:4.2 運行結果服務器端:服務器端查看連接用戶列表:客戶端一:客戶端一發(fā)送消息給所有人:消息顯示界面:客戶端一查看在線用戶列表:客戶端一向客戶端二傳送文件:客戶端二接收文件:客戶端二退出:服務器端顯示退出消息:服務器端踢出客戶端一:5.課程設計心得本次實驗實現(xiàn)的網(wǎng)絡聊天室使用了Linux程序設計的很多重點的基礎知識。這是一次非常綜合的程序設計。我負責注冊和登錄界面的功能,這次實現(xiàn)的網(wǎng)絡聊天室還有很多不足之處,主要是用戶使用的友好性的設計。程序還需要大量的測試才能達到人機友好性的標準。本次CSDN上一位博主的原創(chuàng)代碼。使用結構化軟件設計的思路,采用瀑布開發(fā)模式, 6次迭代,其中有五個重要的迭代模型和七個基線模型產(chǎn)生。另外,在注冊和登錄模塊中,用戶信息文件是不能隨便寫入的,只有讀取到注冊標志位時,才能開放用戶信息的文件的寫入權限,這里用到了文件操作中的文件功能庫中的函數(shù)去實現(xiàn)。另外,在消息顯示模塊中,聊天日志文件是關閉所有文件權限的,用到文件操作權限時才能開放,用完則歸還權限。對于客戶端的連接、消息的處理和文件傳送,我都是使用線程管理技術去實現(xiàn)的,這樣

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論