項(xiàng)目7 局域網(wǎng)聊天室_第1頁(yè)
項(xiàng)目7 局域網(wǎng)聊天室_第2頁(yè)
項(xiàng)目7 局域網(wǎng)聊天室_第3頁(yè)
項(xiàng)目7 局域網(wǎng)聊天室_第4頁(yè)
項(xiàng)目7 局域網(wǎng)聊天室_第5頁(yè)
已閱讀5頁(yè),還剩21頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

局域網(wǎng)聊天室項(xiàng)目七高等院校公共課系列精品教材C#程序設(shè)計(jì)了解Socket網(wǎng)絡(luò)編程基本原理掌握IPEndPoint類、Dns類、NetworkStream類、IPAddress類的使用方法能夠使用UdpClient類完成基于UDP的局域網(wǎng)通信能夠使用TcpListener類和TcpClient類完成基于TCP的局域網(wǎng)通信了解線程類Thread的使用技能目標(biāo)利用C#語(yǔ)言不但可以開發(fā)單機(jī)版的小游戲和應(yīng)用程序,還可以開發(fā)網(wǎng)絡(luò)程序,像局域網(wǎng)聊天室等等,可以利用Socket編程實(shí)現(xiàn)多臺(tái)電腦的通訊。項(xiàng)目導(dǎo)讀任務(wù)1UDP聊天室項(xiàng)目案例任務(wù)2TCP聊天室項(xiàng)目案例知識(shí)梳理UDP聊天室項(xiàng)目案例任務(wù)1一、創(chuàng)建項(xiàng)目二、界面布局三、編寫代碼知識(shí)梳理任務(wù)引入:目前常見的社交軟件:QQ、微信等,主要的功能就是聊天,這些軟件都是從早期的網(wǎng)絡(luò)聊天室發(fā)展而來(lái),聊天室是一種典型的網(wǎng)絡(luò)通信方式,本任務(wù)中我們就來(lái)開發(fā)一個(gè)基于UDP協(xié)議的局域網(wǎng)聊天室程序。任務(wù)分析:我們知道,UDP協(xié)議是一個(gè)無(wú)連接的協(xié)議,通信雙方是對(duì)等關(guān)系,不需要區(qū)分服務(wù)器端和客戶端,所以我們只開發(fā)一個(gè)程序即可,參與聊天的用戶都使用同樣的程序來(lái)聊天。本任務(wù)屬于網(wǎng)絡(luò)程序開發(fā),需要把電腦連入局域網(wǎng),需要學(xué)生具備一定的網(wǎng)絡(luò)通信知識(shí),運(yùn)行時(shí)需要關(guān)閉電腦防火墻或者為該程序設(shè)置防火墻允許。任務(wù)1UDP聊天室項(xiàng)目案例項(xiàng)目實(shí)施:基于UDP的局域網(wǎng)聊天室項(xiàng)目,只需要一個(gè)程序,即所有參與聊天的用戶都使用同一個(gè)程序,要求所有用戶都在同一個(gè)局域網(wǎng)內(nèi),而且使用的UDP端口號(hào)要一致,用主機(jī)號(hào)來(lái)區(qū)分用戶身份。聊天效果如圖所示,端口號(hào)統(tǒng)一為8888。只能用于多臺(tái)電腦聊天,但是不能在一臺(tái)電腦上運(yùn)行兩個(gè)程序。任務(wù)1UDP聊天室項(xiàng)目案例一、創(chuàng)建項(xiàng)目啟動(dòng)VS2013以后,選擇“文件”菜單——“新建”——“項(xiàng)目”打開“新建項(xiàng)目”對(duì)話框,確認(rèn)左側(cè)目錄樹選中的是“VisualC#”選項(xiàng),然后選擇“Windows窗體應(yīng)用程序”,瀏覽到項(xiàng)目的存放目錄“D:\CSharp”,名稱設(shè)置為“WUdp”。任務(wù)1UDP聊天室項(xiàng)目案例二、界面布局本項(xiàng)目開發(fā)一個(gè)基于UDP協(xié)議的局域網(wǎng)聊天室,參與聊天的用戶使用同一個(gè)程序,UDP端口號(hào)要統(tǒng)一。界面布局如圖所示,依次從工具箱中將每個(gè)控件添加到Form1窗體中。任務(wù)1UDP聊天室項(xiàng)目案例主要控件的屬性和事件設(shè)置如表所示。任務(wù)1UDP聊天室項(xiàng)目案例三、編寫代碼前臺(tái)界面(Form.cs[設(shè)計(jì)])設(shè)置完畢之后,右擊窗體“Form1”——“查看代碼”可以進(jìn)入后臺(tái)代碼(Form.cs)的編寫界面,或者右擊解決方案資源管理器的文件“Form1.cs”——“查看代碼”也可以進(jìn)入代碼編寫界面。本項(xiàng)目用到的DNS、IP地址信息需要引入命名空間System.Net,UDP服務(wù)需要引入命名空間System.Net.Sockets,線程需要引入命名空間System.Threading。1.定義窗體的公共變量(即類Form1的字段)2.編寫窗體Form1的加載事件load綁定的方法Form1_Load(),主要用于實(shí)例化IP地址、端口號(hào)、UDP服務(wù)。3.編寫自定義方法GetMessage(),主要用于接收來(lái)自局域網(wǎng)的UDP數(shù)據(jù)流,并顯示到RichTextBox中。任務(wù)1UDP聊天室項(xiàng)目案例4.編寫發(fā)送按鈕單擊事件Click綁定的方法btnSend_Click(),這里主要用于把要說(shuō)的話發(fā)送到網(wǎng)絡(luò)上,同時(shí)本地也能從網(wǎng)絡(luò)獲取到自己發(fā)出去的信息,并顯示到rtxtShow控件中。5.編寫以下三個(gè)方法。其中方法timer1_Tick()用于創(chuàng)建線程,實(shí)時(shí)捕獲網(wǎng)絡(luò)數(shù)據(jù)流;方法btnClose_Click()用于關(guān)閉UDP服務(wù)、終止線程、退出程序,方法Form1_FormClosed()再次調(diào)用btnClose_Click(),代碼重用。任務(wù)1UDP聊天室項(xiàng)目案例TCP聊天室項(xiàng)目案例任務(wù)2一、服務(wù)器端(一)創(chuàng)建項(xiàng)目(二)界面布局二、客戶端(一)創(chuàng)建項(xiàng)目(二)界面布局(三)編寫代碼知識(shí)梳理任務(wù)引入:在“計(jì)算機(jī)網(wǎng)絡(luò)”課程中,我們學(xué)過(guò)傳輸層主要包含兩個(gè)協(xié)議:TCP和UDP,那么我們能不能再開發(fā)一個(gè)基于TCP協(xié)議的聊天室呢?當(dāng)然能!不過(guò)呢,TCP聊天室與UDP聊天室不同,TCP協(xié)議是面向連接的,需要分別開發(fā)服務(wù)器端和客戶端。任務(wù)分析:在服務(wù)器端用TCPListener類來(lái)監(jiān)聽客戶端的連接請(qǐng)求,在客戶端用TcpClient類連接服務(wù)器端的IP地址和端口號(hào),連接建立成功以后服務(wù)器和客戶端可以發(fā)送聊天內(nèi)容。任務(wù)2TCP聊天室項(xiàng)目案例項(xiàng)目實(shí)施:基于TCP的局域網(wǎng)聊天室項(xiàng)目,需要兩個(gè)程序,即一個(gè)服務(wù)器端和一個(gè)客戶端,服務(wù)器端先啟動(dòng)服務(wù),客戶端使用服務(wù)器的主機(jī)名和端口號(hào)與服務(wù)器連接,當(dāng)然一臺(tái)服務(wù)器可以服務(wù)于多個(gè)客戶端。聊天效果如圖所示。任務(wù)2TCP聊天室項(xiàng)目案例一、服務(wù)器端(一)創(chuàng)建項(xiàng)目啟動(dòng)VS2013以后,選擇“文件”菜單——“新建”——“項(xiàng)目”打開“新建項(xiàng)目”對(duì)話框,確認(rèn)左側(cè)目錄樹選中的是“VisualC#”選項(xiàng),然后選擇“Windows窗體應(yīng)用程序”,瀏覽到項(xiàng)目的存放目錄“D:\CSharp”,名稱設(shè)置為“WTcpServer”。(二)界面布局本項(xiàng)目開發(fā)一個(gè)基于TCP協(xié)議的局域網(wǎng)聊天室服務(wù)器端,為局域網(wǎng)聊天提供一個(gè)服務(wù)平臺(tái),啟動(dòng)服務(wù)器端以后,將主機(jī)名和端口號(hào)對(duì)外公開,等待TCP聊天室客戶端的連接。界面布局如圖所示,依次從工具箱中將每個(gè)控件添加到Form1窗體中。任務(wù)2TCP聊天室項(xiàng)目案例任務(wù)2TCP聊天室項(xiàng)目案例界面布局(三)編寫代碼前臺(tái)界面(Form.cs[設(shè)計(jì)])設(shè)置完畢之后,右擊窗體“Form1”——“查看代碼”可以進(jìn)入后臺(tái)代碼(Form.cs)的編寫界面,或者右擊解決方案資源管理器的文件“Form1.cs”——“查看代碼”也可以進(jìn)入代碼編寫界面。本項(xiàng)目用到的DNS、IP地址信息需要引入命名空間System.Net,TCP服務(wù)、套接字、網(wǎng)絡(luò)流需要引入命名空間System.Net.Sockets,線程需要引入命名空間System.Threading,讀寫流需要引入命名空間System.IO。任務(wù)2TCP聊天室項(xiàng)目案例二、客戶端(一)創(chuàng)建項(xiàng)目啟動(dòng)VS2013以后,選擇“文件”菜單——“新建”——“項(xiàng)目”打開“新建項(xiàng)目”對(duì)話框,確認(rèn)左側(cè)目錄樹選中的是“VisualC#”選項(xiàng),然后選擇“Windows窗體應(yīng)用程序”,瀏覽到項(xiàng)目的存放目錄“D:\CSharp”,名稱設(shè)置為“WTcpClient”。(二)界面布局本項(xiàng)目開發(fā)一個(gè)基于TCP協(xié)議的局域網(wǎng)聊天室客戶端,輸入TCP聊天室服務(wù)器的主機(jī)名和端口號(hào)和服務(wù)器端建立連接,連接成功可進(jìn)行聊天。界面布局如圖所示,依次從工具箱中將每個(gè)控件添加到Form1窗體中。任務(wù)2TCP聊天室項(xiàng)目案例任務(wù)2TCP聊天室項(xiàng)目案例

界面布局(三)編寫代碼前臺(tái)界面(Form.cs[設(shè)計(jì)])設(shè)置完畢之后,右擊窗體“Form1”——“查看代碼”可以進(jìn)入后臺(tái)代碼(Form.cs)的編寫界面,或者右擊解決方案資源管理器的文件“Form1.cs”——“查看代碼”也可以進(jìn)入代碼編寫界面。本項(xiàng)目用到的TCP服務(wù)、套接字、網(wǎng)絡(luò)流需要引入命名空間System.Net.Sockets,線程需要引入命名空間System.Threading,讀寫流需要引入命名空間System.IO。任務(wù)2TCP聊天室項(xiàng)目案例本項(xiàng)目完成了兩個(gè)版本的局域網(wǎng)聊天程序的開發(fā),分別基于UDP和TCP協(xié)議。主要學(xué)習(xí)了C#的網(wǎng)絡(luò)編程和線程,C#提供了網(wǎng)絡(luò)編程常用的兩個(gè)命名空間System.Net和System.Net.Socket,我們可以使用這兩個(gè)命名空間完成網(wǎng)絡(luò)通信

溫馨提示

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

評(píng)論

0/150

提交評(píng)論