




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院20082009 學(xué)年第 2 學(xué)期計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)題目: 基于tcp的網(wǎng)絡(luò)聊天程序 班級(jí): 060341a 學(xué)號(hào): 060341101 姓名: 柏榴基 教師: 成績(jī): 目 錄1 需求分析11.1 課程設(shè)計(jì)目的11.2 課程設(shè)計(jì)內(nèi)容11.3 課程設(shè)計(jì)要求12 概要設(shè)計(jì)22.1 原理概述22.2 運(yùn)行環(huán)境32.3 基本設(shè)計(jì)思路32.4 功能模塊設(shè)計(jì)43 詳細(xì)設(shè)計(jì)53.1 程序流程53.2 主要算法63.3 主要數(shù)據(jù)結(jié)構(gòu)73.4 主要函數(shù)說(shuō)明84 用戶使用手冊(cè)95 項(xiàng)目分析與總結(jié)115.1 項(xiàng)目分析11(實(shí)現(xiàn)過程中遇到的問題及解決辦法;系統(tǒng)運(yùn)行結(jié)果分析:要求用sniffer分析
2、出網(wǎng)絡(luò)通信采用的運(yùn)輸層協(xié)議、ip地址、端口號(hào)等信息)5.2 總結(jié)與建議12附錄a 源程序代碼文件說(shuō)明13(每個(gè)源程序代碼文件用一句話說(shuō)明即可)附錄b 參考文獻(xiàn)141需求分析1.1課程設(shè)計(jì)目的:熟悉網(wǎng)絡(luò)編程基本原理1.2課程設(shè)計(jì)內(nèi)容:使用c#語(yǔ)言編寫網(wǎng)絡(luò)聊天工具2概要設(shè)計(jì)2.1原理概述:這是一個(gè)基于tcp的聊天工具,需要在兩臺(tái)機(jī)子上裝有該聊天工具,通過連接、監(jiān)聽、數(shù)據(jù)發(fā)送和接收,最終完成該聊天功能的實(shí)現(xiàn)。2.2運(yùn)行環(huán)境:windows平臺(tái)2.3基本設(shè)計(jì)思路:首先需要?jiǎng)?chuàng)建套接字用于網(wǎng)絡(luò)間的傳送與接收,然后通過主線程建立接受線程,以實(shí)現(xiàn)接收數(shù)據(jù)的功能,創(chuàng)建套接字需要先初始化,創(chuàng)建,與綁定三個(gè)步驟,之
3、后將主線程創(chuàng)建的套接字的變量進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換到接受線程當(dāng)中。然后在成功接受數(shù)據(jù)后通過:postmessage(hwnd,wm_recvdata,0,(lparam)&temprecv)發(fā)送消息,并通過cchatdlg:onrecvdata(wparam wparam,lparam lparam)處理消息。之后,實(shí)現(xiàn)發(fā)送功能,并完善各控件的功能與限制條件。2.4功能模塊設(shè)計(jì):idc_static:用于實(shí)現(xiàn)聊天內(nèi)容的顯示。idc_edit_send:用于實(shí)現(xiàn)發(fā)送內(nèi)容的顯示。idc_ipaddress1:用于實(shí)現(xiàn)對(duì)方ip地址的顯示。idc_btn_send:實(shí)現(xiàn)發(fā)送消息的功能。idc_list
4、_friend:實(shí)現(xiàn)好友列表的顯示。idc_btn_add:實(shí)現(xiàn)添加好友的功能。idc_btn_dle:實(shí)現(xiàn)刪除好友的功能。idc_edit1:用于填寫好友的姓名idc_ipaddress1:用于填寫好友的ip地址流程圖:客戶端程序服務(wù)端程序socket()socket() bind() sockaddr_in() sockaddr_in accept()send()recv()recv()send()closesocket()3詳細(xì)設(shè)計(jì)3.1主函數(shù)、頁(yè)面加載static void main() application.run(new mainform();private void mainf
5、orm_load(object sender, system.eventargs e)this.listener = new thread(new threadstart(startlisten);this.listener.start();private void mainform_closed(object sender, system.eventargs e)if ( this.listener != null )this.listener.abort();if ( this.tcplistener != null )this.tcplistener.stop();3.2監(jiān)聽函數(shù)(含接受
6、功能)private void startlisten()this.tcplistener = new tcplistener(19808);this.tcplistener.start();while( true )tcpclient tcpclient = this.tcplistener.accepttcpclient();networkstream mystream = tcpclient.getstream();byte bytes = new byte2048;int bytesread = mystream.read(bytes,0,bytes.length);string me
7、ssage = system.text.encoding.utf8.getstring(bytes,0,bytesread);this.richtextbox2.text += message + "n"3.3發(fā)送函數(shù)(含連接功能)private void send()if (this.ip.text.length < 7 )messagebox.show("ip地址錯(cuò)誤!","錯(cuò)誤信息:",messageboxbuttons.ok,messageboxicon.information);return;if ( this.ric
8、htextbox1.text.length < 1 )return;trystring message = this.nickname.text + ":" + this.richtextbox1.text;tcpclient tcpclient = new tcpclient(this.ip.text,19808);networkstream tcpstream = tcpclient.getstream();streamwriter stream = new streamwriter(tcpstream);stream.flush();stream.write(m
9、essage);stream.close();tcpclient.close();this.richtextbox2.appendtext( message + "n");catch ( exception err)messagebox.show(err.message,"錯(cuò)誤信息:",messageboxbuttons.ok,messageboxicon.information);finallysends.abort();4用戶使用手冊(cè)首先將程序裝于兩臺(tái)計(jì)算機(jī)中并運(yùn)行,填寫對(duì)方ip地址,輸入聊天內(nèi)容,點(diǎn)擊發(fā)送,對(duì)方即可收到你發(fā)送的內(nèi)容。并可增加對(duì)方為好友,此時(shí)就不再顯示對(duì)方的ip號(hào),而是好友的名稱。這些信息將保存在friendlist.ini文件中。5總結(jié)與建議:這個(gè)聊天程序的實(shí)現(xiàn)很復(fù)雜,通過大量的閱讀材料以及請(qǐng)教周邊的同學(xué)才了解了幾個(gè)主要算法的實(shí)現(xiàn)。但最重要
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 8263-2025耐磨白口鑄鐵件
- kpa績(jī)效管理制度
- 考試違規(guī)違紀(jì)管理制度
- 直播運(yùn)營(yíng)規(guī)范管理制度
- 種薯種苗質(zhì)量管理制度
- 茶園質(zhì)量安全管理制度
- 業(yè)主微信群管理制度
- 研究機(jī)構(gòu)會(huì)務(wù)管理制度
- 肉雞養(yǎng)殖雞場(chǎng)管理制度
- 考試機(jī)房設(shè)備管理制度
- 公路橋位勘測(cè)設(shè)計(jì)規(guī)范
- 各專業(yè)試驗(yàn)報(bào)告氣味及
- 中國(guó)糖尿病腎臟病防治指南(2021年版)
- 計(jì)算機(jī)技術(shù)前沿總結(jié)課件
- 輸電線路風(fēng)偏計(jì)算基本方法
- 馬鞍山市潔源環(huán)保有限公司馬鞍山市一般工業(yè)固廢填埋場(chǎng)項(xiàng)目重新報(bào)批環(huán)境影響報(bào)告書
- 通信線路投標(biāo)文件
- 集結(jié)號(hào)觀后感 集結(jié)號(hào)觀后感500字(最全)
- (完整版)全國(guó)各省份城市明細(xì)表
- GB/T 6109.20-2008漆包圓繞組線第20部分:200級(jí)聚酰胺酰亞胺復(fù)合聚酯或聚酯亞胺漆包銅圓線
- 《社會(huì)主義核心價(jià)值觀》優(yōu)秀課件
評(píng)論
0/150
提交評(píng)論