版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 《計(jì)算機(jī)網(wǎng)絡(luò)》</b></p><p><b> 課程設(shè)計(jì)報(bào)告</b></p><p> 姓 名: </p><p> 學(xué) 號(hào): </p><p> 班 級(jí): 081
2、 </p><p> 專 業(yè): 計(jì)科 </p><p> 指導(dǎo)教師: 孔廣黔 </p><p> 時(shí) 間: 2011年6月21日 </p><p><b> 目 錄</b&g
3、t;</p><p> 一、 課程設(shè)計(jì)目的 …………………………………………………… 3</p><p> 二、課程設(shè)計(jì)題目描述和要求…………………………………………3</p><p> 課程設(shè)計(jì)報(bào)告內(nèi)容…………………………………………………3</p><p> 3.1、聊天工具服務(wù)器端的實(shí)現(xiàn)……………………………………3</p
4、><p> 3.2、聊天工具客戶端的實(shí)現(xiàn)………………………………………6</p><p> 3.3課程設(shè)計(jì)結(jié)果展示……………………………………………9</p><p> 總結(jié)………………………………………………………………12</p><p> 參考書目…………………………………………………………12</p><p&g
5、t;<b> 一、課程設(shè)計(jì)目的</b></p><p> 1.1、加深對(duì)TCP/IP協(xié)議的理解;</p><p> 1.2、掌握用Socket編程實(shí)現(xiàn)聊天工具。</p><p> 課程設(shè)計(jì)題目描述和要求</p><p> 2.1、使用Socket編程實(shí)現(xiàn)聊天工具服務(wù)器端;</p><p>
6、; 2.2、使用Socket編程實(shí)現(xiàn)聊天工具客戶端;</p><p> 2.3、撰寫課程設(shè)計(jì)報(bào)告。</p><p> 三、課程設(shè)計(jì)報(bào)告內(nèi)容</p><p> 3.1、聊天工具服務(wù)器端的實(shí)現(xiàn)</p><p> 3.1.1、先建立一個(gè)MFC,選dialogBased,工程名為L(zhǎng)X2,要選擇Window Sockets。</p>
7、;<p> 出現(xiàn)Dialog以后,編輯界面,使其如上圖所示。控件對(duì)應(yīng)的變量如下表:</p><p> 3.1.2、建立scocket 連結(jié)</p><p> 首先,在BOOL CLx2Dlg::OnInitDialog()末尾添加語句,使其如下所示:</p><p> m_send.EnableWindow(FALSE);//使發(fā)送按鈕變灰&
8、lt;/p><p> return TRUE; // return TRUE </p><p> 在Lx2工程里添加新類:CServer。繼承自CSocket</p><p> 在lx2Dlg.h里添加頭文件#include "Server.h"</p><p> 在CLx2Dlg類里添加private變量
9、:CServer m_server; CServer m_recv</p><p> 在對(duì)話框的圖象上雙擊“偵聽”按鈕,在里面添加如下代碼,使其如下所示:</p><p> void CLx2Dlg::OnListen() </p><p><b> {</b></p><p> m_server.Create(
10、1000);//使用1000號(hào)端口</p><p> m_server.Listen();//偵聽</p><p><b> }</b></p><p> 在對(duì)話框圖象上再雙擊“發(fā)送”按鈕,添加代碼,如下所示:</p><p> void CLx2Dlg::OnSend() </p&g
11、t;<p><b> {</b></p><p> UpdateData(TRUE);//更新數(shù)據(jù),使m_msg得到當(dāng)前框中文本</p><p> m_recv.Send(m_msg, 255);//發(fā)送數(shù)據(jù)</p><p> m_ctrl.SetSel(0, -1);//全選發(fā)送框文字</p>&
12、lt;p> m_ctrl.ReplaceSel("", TRUE);//將發(fā)送框置空</p><p><b> }</b></p><p> 3.1.3、利用OnAccept和OnReceive函數(shù)處理socket消息。</p><p> 在Server.cpp里添加頭文件#include "lx2D
13、lg.h"。</p><p> 首先,在lx2工程的編輯界面點(diǎn)右鍵,選Class Wizard,在classname欄目里面找到CServer類,添加OnAccept和OnReceive函數(shù)并且雙擊下面的Member function欄目,分別為兩個(gè)函數(shù)添加代碼。</p><p> void CServer::OnAccept(int nErrorCode)</p>
14、;<p><b> {</b></p><p> // TODO: Add your specialized code here and/or call the base class</p><p> CSocket::OnAccept(nErrorCode);</p><p> ((CLX2Dlg*)(AfxGetApp
15、()->m_pMainWnd))->ShowAccept();</p><p> //在這里僅僅添加了這一句,因?yàn)镃Lx2Dlg類是發(fā)送接收消息的主窗口,</p><p> //而且應(yīng)用程序發(fā)送接收的消息也在CLx2Dlg對(duì)象實(shí)例中進(jìn)行,</p><p> //所以當(dāng)CServer類的對(duì)象收到客戶機(jī)的Connect消息時(shí),</p>&
16、lt;p> //便可調(diào)用CLx2Dlg對(duì)象中的ShowAccept() 函數(shù)處理。</p><p><b> }</b></p><p> 這步以后,可以為CLx2Dlg類里添加public成員函數(shù)ShowAccept()。</p><p> void CLx2Dlg::ShowAccept()</p><p&
17、gt;<b> {</b></p><p> m_server.Accept(m_recv);</p><p> AfxMessageBox("Server端連接成功");</p><p> m_send.EnableWindow(TRUE);//連接成功,可以發(fā)送</p><p>
18、 m_listen.EnableWindow(FALSE);//同時(shí)禁止偵聽按鈕</p><p><b> }</b></p><p> 于是,當(dāng)客戶機(jī)調(diào)用m_client.Connect(m_ip, 1000);這句時(shí),主機(jī)server端發(fā)現(xiàn),并調(diào)用ShowAccept函數(shù)來建立連接。執(zhí)行完以后,Socket連接便被建立。</p><p
19、> 3.1.4、添加發(fā)送聊天信息的函數(shù)。</p><p> 注意到前面點(diǎn)擊發(fā)送按鈕的OnSend() 函數(shù)已經(jīng)添加好了,在Lx2工程中只要添加Server端的接收消息和顯示消息功能就可以進(jìn)行消息的傳送。</p><p> 在CServer類里像添加OnAccept() 一樣添加成員函數(shù)OnReceive()。</p><p> void CServer
20、::OnReceive(int nErrorCode) </p><p><b> {</b></p><p> // TODO: Add your specialized code here and/or call the base class</p><p> CSocket::OnReceive(nErrorCode);</p
21、><p> ((CLx2Dlg*)(AfxGetApp()->m_pMainWnd))->ShowMsg();</p><p><b> }</b></p><p> 建立連接后,一方一旦發(fā)送數(shù)據(jù),另一方的CSocket派生類便調(diào)用這個(gè)函數(shù)。其中代碼可以參考前面OnAccept() 進(jìn)行理解。</p><p&g
22、t; 在CLx2Dlg里添加成員函數(shù)ShowMsg()</p><p> void CLx2Dlg::ShowMsg()</p><p><b> {</b></p><p> char buf[255];</p><p> m_recv.Receive(buf, 255);//接收消息到buf里面,長(zhǎng)度
23、255字節(jié)。</p><p> CString msg;</p><p> msg.Format("%s", buf);//用AfxMessageBox函數(shù)顯示接收到的字符竄。</p><p> AfxMessageBox(msg);//這里注意CString類的用法</p><p><b>
24、 }</b></p><p> 3.2、聊天工具客戶端的實(shí)現(xiàn)</p><p> 3.2.1、先建立一個(gè)MFC,選dialogBased,工程名為L(zhǎng)X1,要選擇Window Sockets。</p><p> 出現(xiàn)Dialog以后,編輯界面,使其如上圖所示??丶?duì)應(yīng)的變量如下表:</p><p> 3.2.2、建立scoc
25、ket 連結(jié)</p><p> 首先,Lx1工程里添加新類:CClient。繼承自CSocket</p><p> 在CLx1Dlg類里添加private變量:CClient m_client;</p><p> 雙擊對(duì)話框圖象上的“連接”按鈕,添加代碼:</p><p> void CLx1Dlg::OnConnect() <
26、/p><p><b> {</b></p><p> UpdateData(TRUE);</p><p> m_client.Create(1001);//使用1001號(hào)端口</p><p> if(m_client.Connect(m_ip, 1000))//連接目標(biāo)地址,1000端口</p>
27、<p><b> {</b></p><p> AfxMessageBox("Client端連接成功");</p><p> m_send.EnableWindow(TRUE);//連接成功,可以發(fā)送</p><p> m_connect.EnableWindow(FALSE);//同時(shí)禁止連
28、接按鈕</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> m_client.Close();//如果連接失敗就關(guān)閉</p><p> AfxMes
29、sageBox("連接失敗");</p><p><b> }</b></p><p><b> }</b></p><p> 雙擊發(fā)送按鈕,添加代碼:</p><p> void CLx1Dlg::OnSend() </p><p><b&
30、gt; {</b></p><p> UpdateData(TRUE);//更新數(shù)據(jù),使m_msg得到當(dāng)前框中文本</p><p> m_client.Send(m_msg, 255);//發(fā)送數(shù)據(jù),長(zhǎng)度255字節(jié)</p><p><b> }</b></p><p> 3.2.3、添加接
31、收聊天信息的函數(shù)。</p><p> 在Client.cpp中添加 #include "Lx1Dlg.h"</p><p> 在CClient類中添加函數(shù)OnReceive</p><p> void CClient::OnReceive(int nErrorCode) </p><p><b> {&l
32、t;/b></p><p> // TODO: Add your specialized code here and/or call the base class</p><p> ((CLx1Dlg*)(AfxGetApp()->m_pMainWnd))->ShowMsg();</p><p> CSocket::OnReceive(nEr
33、rorCode);</p><p><b> }</b></p><p> 在CLx1Dlg類中添加函數(shù)ShowMsg</p><p> void CLx1Dlg::ShowMsg()</p><p><b> {</b></p><p> char buf[255
34、];</p><p> m_client.Receive(buf, 255);//接收消息到buf里面,長(zhǎng)度255 字節(jié)。</p><p> CString msg;</p><p> msg.Format("%s", buf);</p><p> AfxMessageBox(msg);//用AfxM
35、essageBox函數(shù)顯示接收到字 符竄。</p><p><b> }</b></p><p> 3.2.4、收尾工作:即在對(duì)話框銷毀的時(shí)候,關(guān)閉Socket連接,釋放資源。</p><p> 在CLx1Dlg類中添加函數(shù)OnDestroy</p><p> void CLx1Dlg::OnDestroy()
36、</p><p><b> {</b></p><p> CDialog::OnDestroy();</p><p> m_client.Close();//關(guān)閉套接字</p><p><b> }</b></p><p> 3.3課程設(shè)計(jì)結(jié)果展示</p
37、><p> 3.3.1、輸入ip建立連接</p><p> 3.3.2、連接成功</p><p> 3.3.3、服務(wù)器端編輯“hello”并發(fā)送</p><p><b> 客戶端成功接收</b></p><p> 3.3.4、客戶端編輯并發(fā)送“very good!”,服務(wù)器端成功接收<
38、/p><p><b> 總結(jié)</b></p><p> 課程設(shè)計(jì)一向是我比較喜歡的實(shí)踐項(xiàng)目,因?yàn)閺闹袝?huì)學(xué)到許多東西,既檢驗(yàn)了我們前段時(shí)間理論知識(shí)的學(xué)習(xí)效果,又鍛煉了我們的動(dòng)手實(shí)踐能力。</p><p> 通過本次計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì),我更加充分的理解了課本上的知識(shí),加強(qiáng)了自己掌握和理解計(jì)算機(jī)網(wǎng)絡(luò)理論原理的能力,培養(yǎng)了自己的實(shí)際動(dòng)手能力與綜合設(shè)計(jì)
39、能力,并提高了自己的技術(shù)素質(zhì)。而且我意識(shí)到我們所學(xué)的東西將來都是要付諸實(shí)踐的,所以一切要從實(shí)際情況出發(fā),理論聯(lián)系實(shí)際,這樣才能真正發(fā)揮我們所具備的能力。經(jīng)過此次課程設(shè)計(jì),我向我成功的目標(biāo)又邁進(jìn)了一步。</p><p><b> 參考書目:</b></p><p> Andrew S.Tanenbaum.計(jì)算機(jī)網(wǎng)絡(luò).北京:清華大學(xué)出版社.1998.</p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于linux的socket網(wǎng)絡(luò)編程聊天工具課程設(shè)計(jì)
- 軟件開發(fā)集成環(huán)境課程設(shè)計(jì)--小qq聊天工具
- 基于netbios的聊天工具
- java網(wǎng)頁版即時(shí)聊天工具開題報(bào)告
- 基于android的即時(shí)聊天工具
- 網(wǎng)絡(luò)聊天工具的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)
- 開題報(bào)告-基于android的即時(shí)聊天工具
- 局域網(wǎng)聊天工具設(shè)計(jì)畢業(yè)論文
- 聊天工具仿真表情插件的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于OpenSSL開發(fā)的聊天工具的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 網(wǎng)絡(luò)聊天工具的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文
- 基于java的網(wǎng)絡(luò)聊天室--服務(wù)器端
- 基于java的網(wǎng)絡(luò)安全聊天工具畢業(yè)設(shè)計(jì)
- 畢業(yè)論文---局域網(wǎng)聊天工具的設(shè)計(jì)與實(shí)現(xiàn)
- 基于.net的局域網(wǎng)聊天工具
- 畢業(yè)設(shè)計(jì)--網(wǎng)絡(luò)聊天工具的設(shè)計(jì)與實(shí)現(xiàn)(含外文翻譯)
- 課程設(shè)計(jì)報(bào)告---udp服務(wù)器設(shè)計(jì)
- 網(wǎng)絡(luò)視頻聊天工具的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文
- 基于.net的局域網(wǎng)聊天工具論文
- 基于qt4的視頻聊天工具的設(shè)計(jì)與實(shí)現(xiàn)
評(píng)論
0/150
提交評(píng)論