基于ipv6的網(wǎng)絡(luò)編程

基于ipv6的網(wǎng)絡(luò)編程

ID:3665631

大?。?40.50 KB

頁(yè)數(shù):15頁(yè)

時(shí)間:2017-11-22

基于ipv6的網(wǎng)絡(luò)編程_第1頁(yè)
基于ipv6的網(wǎng)絡(luò)編程_第2頁(yè)
基于ipv6的網(wǎng)絡(luò)編程_第3頁(yè)
基于ipv6的網(wǎng)絡(luò)編程_第4頁(yè)
基于ipv6的網(wǎng)絡(luò)編程_第5頁(yè)
資源描述:

《基于ipv6的網(wǎng)絡(luò)編程》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。

1、課程設(shè)計(jì)報(bào)告課程:基于IPv6的網(wǎng)絡(luò)編程學(xué)號(hào):20082212285姓名:付希善班級(jí):網(wǎng)絡(luò)0802教師:李阿麗魯東大學(xué)信息科學(xué)與工程學(xué)院15設(shè)計(jì)名稱與內(nèi)容一、Winsock編程技術(shù)WindowsSockets是Windows下網(wǎng)絡(luò)編程的規(guī)范,是Windows下得到廣泛應(yīng)用的、開(kāi)放的、支持多種協(xié)議的網(wǎng)絡(luò)編程接口。經(jīng)過(guò)不斷完善它已成為Windows網(wǎng)絡(luò)編程的事實(shí)上的標(biāo)準(zhǔn)。Winsock是windows應(yīng)用程序與下層網(wǎng)絡(luò)協(xié)議之間的交互接口,通過(guò)socket,可以很容易的實(shí)現(xiàn)應(yīng)用程序的網(wǎng)絡(luò)連接。Winsock也是Wind

2、ows進(jìn)行網(wǎng)絡(luò)通信編程的API接口。在網(wǎng)絡(luò)編程中最常用的方案是客戶/服務(wù)器模式,首先由服務(wù)器在指定的端口開(kāi)通指定的服務(wù),然后在客戶機(jī)上通過(guò)指定服務(wù)器地址、服務(wù)端口來(lái)連接服務(wù)器以獲取指定的服務(wù)。二、聊天程序的功能及其相關(guān)網(wǎng)絡(luò)協(xié)議使用可靠的TCP來(lái)實(shí)現(xiàn)端到端的連接,使用到的協(xié)議是TCP協(xié)議。采用的體系結(jié)構(gòu)風(fēng)格是服務(wù)器/客戶端風(fēng)格(C/S)。服務(wù)器端建立socket連接,然后監(jiān)聽(tīng)端口,等待客戶端的連接。在客戶端連接之前,消息編輯窗口都設(shè)置為不可編輯狀態(tài)。當(dāng)有客戶端連接后,消息編輯窗口才設(shè)置為可編輯狀態(tài)。本程序的功能就是

3、實(shí)現(xiàn)簡(jiǎn)單的基于TCP協(xié)議的聊天,即簡(jiǎn)單的消息發(fā)送。三、聊天程序流程圖和設(shè)計(jì)方案1)聊天程序流程圖15服務(wù)器端socket函數(shù)建立套接字bind函數(shù)給套接字指定本地地址listen函數(shù)進(jìn)行監(jiān)聽(tīng)accept函數(shù)建立連接建立連接,從accept返回用于通信的新套接字建立連接send函數(shù)和recv函數(shù)收發(fā)數(shù)據(jù)Closesocket函數(shù)關(guān)閉套接字connect函數(shù)與服務(wù)器建立連接send函數(shù)和recv函數(shù)收發(fā)數(shù)據(jù)Closesocket函數(shù)關(guān)閉套接字客戶端socket函數(shù)建立套接字2)設(shè)計(jì)方案服務(wù)器端的設(shè)計(jì):服務(wù)器端的界面由

4、一個(gè)主窗口加三個(gè)控件組成,其中有兩個(gè)edit控件和一個(gè)button控件。程序設(shè)計(jì)窗口截圖如下:指定好服務(wù)端口號(hào),本程序指定為1111。然后建立窗口函數(shù)所關(guān)心的SOCKET通信消息,為程序?yàn)镕D_ACCEPT和FD_READ。在服務(wù)器端建立本地socket,用bind函數(shù)綁定本地套接字地址,最大連接數(shù)設(shè)置為5。完成之后進(jìn)行監(jiān)聽(tīng),看是否有客戶端請(qǐng)求連接,若有則接受連接。建立連接之后用,如果要發(fā)送數(shù)據(jù),則在下面的sendEdit里面輸入想要發(fā)送的內(nèi)容,然后點(diǎn)擊“發(fā)送”按鈕?!卑l(fā)送”15按鈕發(fā)送出一個(gè)WM_COMMAND

5、消息,窗口函數(shù)接收WM_COMMAND消息,將接收到的消息用send函數(shù)發(fā)送出去。當(dāng)客戶端有消息發(fā)送過(guò)來(lái)的時(shí)候,同樣的要捕獲消息,用recv函數(shù)進(jìn)行接收數(shù)據(jù)。通信結(jié)束之后釋分配給套接字的資源。客戶端的設(shè)計(jì):客戶端的界面設(shè)計(jì)和服務(wù)器端的基本一致,是窗口標(biāo)題不同。程序設(shè)計(jì)窗口截圖如下:指定好待連接的服務(wù)器的IP地址和服務(wù)器端口號(hào),很顯然地端口和服務(wù)器設(shè)置的一樣,為1111。然后建立窗口函數(shù)所關(guān)心的SOCKET通信消息,這里需要設(shè)置FD_ACCEPT和FD_CONNECT。根據(jù)連接服務(wù)器的套接字,使用connect函數(shù)

6、建立連接。當(dāng)要發(fā)送消息的時(shí)候則在下面的sendEdit里面輸入想要發(fā)送的內(nèi)容,然后點(diǎn)擊“發(fā)送”按鈕?!卑l(fā)送”按鈕發(fā)送出一個(gè)WM_COMMAND消息,窗口函數(shù)接收WM_COMMAND消息,將接收到的消息用send函數(shù)發(fā)送出去。當(dāng)客戶端有消息發(fā)送過(guò)來(lái)的時(shí)候,同樣的要捕獲消息,用recv函數(shù)進(jìn)行接收數(shù)據(jù)。通信結(jié)束之后釋分配給套接字的資源。四、選擇開(kāi)發(fā)環(huán)境開(kāi)發(fā)環(huán)境:VisualC++6.0設(shè)計(jì)過(guò)程(步驟)或程序代碼源程序:1)服務(wù)器端.#include#include#defi

7、neID_RECEIVEEDIT1#defineID_SENDEDIT2#defineID_PUSHME3#defineSERVER_PORT1111#defineWM_SOCKET(WM_USER+1)LRESULTCALLBACKWndProc(HWND,UINT,WPARAM,LPARAM);intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPSTRlpcmdLine,intnCmdShow){15staticTCHARszAppName

8、[]=TEXT("ChatServer");staticTCHARszClassName[]=TEXT("ChatServerClass");HWNDhwnd;MSGmsg;WNDCLASSwndclass;wndclass.style=CS_HREDRAW

9、CS_VREDRAW;wndclass.lpfnWndProc=WndProc;wndclass.cbClsExt

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。