資源描述:
《簡單的即時(shí)通信軟件》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、河南理工大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院課程設(shè)計(jì)報(bào)告2011—2012學(xué)年第二學(xué)期課程名稱計(jì)算機(jī)網(wǎng)絡(luò)設(shè)計(jì)題目簡單的即時(shí)通信軟件姓名學(xué)號專業(yè)班級網(wǎng)絡(luò)安全10-05指導(dǎo)教師2012年6月19日目錄一、課程設(shè)計(jì)目的及要求…………………………………………3(一)本課程設(shè)計(jì)的教學(xué)基本要求…………………………………3(二)簡單的即時(shí)通信軟件目的與要求……………………………3二、設(shè)計(jì)原理………………………………………………………3(一)socket簡介…………………………………………………3(二)WinSocket的通信原理………………………………………4(
2、三)SOCKET連接過程……………………………………………4(四)套接字通信…………………………………………………5三、程序設(shè)計(jì)相關(guān)介紹及方法……………………………………6(一)點(diǎn)對點(diǎn)通信…………………………………………………6(二)WinSocket通信的步驟………………………………………7(三)程序中用到的過程函數(shù)和核心代碼…………………………7四、系統(tǒng)的原理框圖及程序流程圖………………………………11五、設(shè)計(jì)結(jié)果及分析………………………………………………14(一)服務(wù)器端和客戶端在線初始化窗口…………………………14(二)通信測試
3、……………………………………………………15(三)使用須知……………………………………………………16六、總結(jié)……………………………………………………………17七、參考文獻(xiàn)………………………………………………………17一、課程設(shè)計(jì)目的及要求(一)本課程設(shè)計(jì)的教學(xué)基本要求1.鞏固和加深對計(jì)算機(jī)網(wǎng)絡(luò)原理的理解,提高綜合運(yùn)用本課程所學(xué)知識的能力。2.培養(yǎng)學(xué)生選用參考書,查閱手冊及文獻(xiàn)資料的能力。培養(yǎng)獨(dú)立思考,深入研究,分析問題、解決問題的能力。3.通過實(shí)際分析設(shè)計(jì)、編程調(diào)試,掌握計(jì)算機(jī)網(wǎng)絡(luò)通信的基本規(guī)程,以及協(xié)議的利用方法,體會體系結(jié)構(gòu)分層的
4、思路。4.能夠按要求編寫課程設(shè)計(jì)報(bào)告書,能正確闡述設(shè)計(jì)和設(shè)計(jì)結(jié)果、正確繪制系統(tǒng)和程序框圖。5.通過課程設(shè)計(jì),培養(yǎng)學(xué)生嚴(yán)謹(jǐn)?shù)目茖W(xué)態(tài)度,嚴(yán)肅認(rèn)真的工作作風(fēng),和團(tuán)隊(duì)協(xié)作精神。(二)簡單的即時(shí)通信軟件目的與要求利用WinSock進(jìn)行點(diǎn)對點(diǎn)通信,工作機(jī)制模仿即時(shí)通信軟件的基本功能,登陸,上線,傳遞信息等等。分為客戶部分和服務(wù)器部分兩塊,客戶部分類似一般通信軟件例如QQ,服務(wù)器部分主要提供客戶端用戶基本數(shù)據(jù)配置。二、設(shè)計(jì)原理(一)socket簡介所謂socket通常也稱作"套接字",用于描述IP地址和端口,是一個(gè)通信鏈的句柄。應(yīng)用程序通常通過"套接
5、字"向網(wǎng)絡(luò)發(fā)出請求或者應(yīng)答網(wǎng)絡(luò)請求。Socket接口是TCP/IP網(wǎng)絡(luò)的API,Socket接口定義了許多函數(shù)或例程,程序員可以用它們來開發(fā)TCP/IP網(wǎng)絡(luò)上的應(yīng)用程序。要學(xué)Internet上的TCP/IP網(wǎng)絡(luò)編程,必須理解Socket接口。Socket接口設(shè)計(jì)者最先是將接口放在Unix操作系統(tǒng)里面的。如果了解Unix系統(tǒng)的輸入和輸出的話,就很容易了解Socket了。網(wǎng)絡(luò)的Socket數(shù)據(jù)傳輸是一種特殊的I/O,Socket也是一種文件描述符。Socket也具有一個(gè)類似于打開文件的函數(shù)調(diào)用Socket(),該函數(shù)返回一個(gè)整型的Socke
6、t描述符,隨后的連接建立、數(shù)據(jù)傳輸?shù)炔僮鞫际峭ㄟ^該Socket實(shí)現(xiàn)的。常用的Socket類型有兩種:流式Socket(SOCK_STREAM)和數(shù)據(jù)報(bào)式Socket(SOCK_DGRAM)。流式是一種面向連接的Socket,針對于面向連接的TCP服務(wù)應(yīng)用;數(shù)據(jù)報(bào)式Socket是一種無連接的Socket,對應(yīng)于無連接的UDP服務(wù)應(yīng)用。最重要的是,socket是面向客戶/服務(wù)器模型而設(shè)計(jì)的,針對客戶和服務(wù)器程序提供不同的socket系統(tǒng)調(diào)用。客戶隨機(jī)申請一個(gè)socket(相當(dāng)于一個(gè)想打電話的人可以在任何一臺入網(wǎng)電話上撥號呼叫),系統(tǒng)為之分配
7、一個(gè)socket號;服務(wù)器擁有全局公認(rèn)的socket,任何客戶都可以向它發(fā)出連接請求和信息請求(相當(dāng)于一個(gè)被呼叫的電話擁有一個(gè)呼叫方知道的電話號碼)。socket利用客戶/服務(wù)器模式巧妙地解決了進(jìn)程之間建立通信連接的問題。服務(wù)器socket半相關(guān)為全局所公認(rèn)非常重要。不妨考慮一下,兩個(gè)完全隨機(jī)的用戶進(jìn)程之間如何建立通信?假如通信雙方?jīng)]有任何一方的socket固定,就好比打電話的雙方彼此不知道對方的電話號碼,要通話是不可能的。(二)WinSocket的通信原理WinSock是一個(gè)基于Socket模型的API。WinSock在Windows
8、98,WindowNT中使用。WinSock一般由兩部分組成:開發(fā)組件和運(yùn)行組件。開發(fā)組件是供程序員在windows環(huán)境下開發(fā)網(wǎng)絡(luò)應(yīng)用程序使用的,它包括應(yīng)用程序接口庫函數(shù)、頭文件和實(shí)現(xiàn)的文檔,其中最主要的是