




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、環境(hunjng)介紹開發環境:Microsoft Visual Studio 2010編程語言:C#使用(shyng)技術:soket套接字編程,多線程第1頁/共18頁第一頁,共19頁。模塊(m kui)介紹客戶端功能:注冊新用戶登錄服務器;顯示當前服務器在線(zi xin)用戶;群聊;私聊;服務器功能: 創建新用戶;驗證客戶端登錄;實現客戶端消息的轉發;第2頁/共18頁第二頁,共19頁。服務端一、項目中添加(tin ji)windows窗體,設計如下。1.添加(tin ji)listbox控件顯示連接的客戶端名稱。2.添加(tin ji)Txtbox控件控制要監聽的端口。第3頁/共18頁
2、第三頁,共19頁。服務端二、服務端代碼編寫服務端要的作用是監聽客戶端的連接請求(qngqi)并確認其請求(qngqi)。程序一開始便打開一個StartListening()線程。第4頁/共18頁第四頁,共19頁。當服務器端接收到一個來自客戶端的連接(linji)請求后,它就打開一個clientservice()線程來服務客戶端。當一個連接(linji)被建立后,每個客戶端就被賦予一個屬于它自己的套接字。同時,一個Client類的對象被建立。該對象包的一些相關信息,該信息被保存在一個數組列表中。Client代碼如下第5頁/共18頁第五頁,共19頁。程序的主體部分應是ServiceClient()
3、函數。 該函數是一個獨立的線程,其主要部分是一個while循環。在循環體內,程序處理各種客戶端命令。服務器端接收來自以ASCII碼給出的字符串,其中包含了一個“|”形式的分隔符。字符串中“|”以前的部分就是具體的命令,包括CONN、CHAT、PRIV、GONE四種類型。 CONN命令建立一個新的客戶端連接,將現有的用戶列表發送給新用戶并告知其他用戶有一個新用戶加入。CHAT命令將新的信息發送給所有用戶。PRIV命令將悄悄話發送給某個用戶。GONE命令從用戶列表中除去一個已離開的用戶并告知其他的用戶某某已經離開了。 同時(tngsh),GONE命令可以設置布爾型的變量alive為false從而結
4、束與客戶端連接的線程。ServiceClient()第6頁/共18頁第六頁,共19頁。Serviceclient()主要(zhyo)代碼:第7頁/共18頁第七頁,共19頁。第8頁/共18頁第八頁,共19頁。客戶端 這樣,服務器端程序就基本(jbn)完成了。接下來設計客戶端一、設計客戶端窗體往界面上添加一個ListBox控件(用于顯示(xinsh)用戶列表),一個RichTextBox控件(用于顯示(xinsh)聊天消息以及系統消息),一個TextBox控件(用于發送消息),一個CheckBox控件(確定是否為悄悄話),一個StatusBar控件以及四個Button控件(分別為“連接”、“斷開連
5、接”、“開始記錄”、“發送”)。各個控件的屬性設置可以參見源代碼中的具體設置,這里從略。界面設計好后的圖象如下: 第9頁/共18頁第九頁,共19頁。客戶端窗體如下(rxi):第10頁/共18頁第十頁,共19頁。 當客戶端試圖和服務器端進行連接時,一個連接必須(bx)建立而且得向服務器端進行注冊。creatConnection()函數運用一個TcpClient來和服務器端取得連接,同時創建一個NetworkStream來發送消息。還有,端口號和服務器端的是保持一致的。 creatConnection()函數如下:第11頁/共18頁第十一頁,共19頁。在和服務器端連接成功后,程序就用Storefo
6、rServer()()函數向服務器端發送一個CONN命令(mng lng)。該命令(mng lng)先是發送該用戶的名稱,然后從服務器端獲得其他所有用戶的列表。第12頁/共18頁第十二頁,共19頁。 之后,就是用戶之間的聊天了ReceiveChat()函數來完成。 該函數是一個獨立的線程,它處理所有用戶獲得的消息和用戶發送的消息。它主要(zhyo)處理了CHAT、PRIV、JOIN、GONE、QUIT等命令,處理的方法和服務器端的類似。 ReceiveChat()主要(zhyo)代碼第13頁/共18頁第十三頁,共19頁。Receivechat()主要代碼(di m)如下:第14頁/共18頁第十
7、四頁,共19頁。Receivechat()主要(zhyo)代碼:第15頁/共18頁第十五頁,共19頁。 通過以上的一些函數(hnsh),客戶端程序之間就可以進行自由地聊天了,各個用戶之間還可以互相發送悄悄話。所以程序已經實現了聊天室的基本功能了,不過最后各個用戶還要正常地退出,那就要用到QuitChat()函數(hnsh)了。第16頁/共18頁第十六頁,共19頁。程序(chngx)(chngx)編寫過程中遇到的困難:總結(zngji)如讓每個客戶端和服務端中間能夠獨立(dl)通訊,互不影響。解決:解決: 創建一個Client類包含客戶端成員的名稱,地址,通訊內容。每個客戶端都會實例化一個新的數組,并且調用新的線程。第17頁/共18頁第十七頁,共19頁。感謝您的觀看(gunkn)!第18頁/共18頁第十八頁,共19頁。NoImage內容(nirng)總結環境介紹。服務端要的作用是監聽客戶端的連接請求并確認其請求。相關信息,該信息被保存在一個數組列表中。服務器端接收來自以ASCII碼給出的字符串,其中包含了一個“|”形式的分隔符。各個控件的屬性設置可
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電視行業創新技術與未來發展方向考核試卷
- 監控攝像頭安裝與調試考核試卷
- 日用洗滌劑的清潔效果與環境保護性能考核試卷
- 自行車行業服務標準化建設考核試卷
- 療養院護理政策法規知識考核試卷
- 城市配送與物流配送環節的末端配送創新考核試卷
- 知識產權法律實務考核試卷
- 節日動畫廣告設計勞務合同
- 工業設備采購與設備性能維護合同
- 航天材料研發技術保密協議書
- (二模)2024~2025學年度蘇錫常鎮四市高三教學情況調研(二)物理試卷(含答案)
- 事件網絡輿情傳播機制的建模與仿真-全面剖析
- 初中信息技術蘇科版(2023)七年級下冊第七單元 跨學科主題學習-絲綢之路公開課教案及反思
- 2025年高考語文作文預測52篇(含范文)
- 《昭君出塞》課本劇劇本:感受歷史深處的家國情懷
- 領略文化魅力堅定文化自信(課件)(春晚、文化專題)2024-2025學年統編版道德與法治中考二輪熱點專題復習
- 投融資考試筆試題及答案
- 國內常見模具鋼牌號對照表
- 解聘證明范本
- 混凝土靜力抗壓彈性模量試驗記錄表
- 山東發達面粉集團有限公司 員工手冊
評論
0/150
提交評論