【正文】
ndows Sockets網(wǎng)絡(luò)通信程序的軟、硬件環(huán)境所采用的操作系統(tǒng)軟件可以是Windows XP,Windows 7,因?yàn)樗鼈兌贾С諻indows Sockets API,在以下的介紹中,我們將以在Windows XP環(huán)境下的開發(fā)為例。這些擴(kuò)充主要是提供了一些異步函數(shù),并增加了符合Windows消息驅(qū)動(dòng)特性的網(wǎng)絡(luò)事件異步選擇機(jī)制。運(yùn)行組件:Windows Sockets 應(yīng)用程序接口的動(dòng)態(tài)鏈接庫()。 WinSock網(wǎng)絡(luò)編程Windows Sockets是從Berkeley Sockets擴(kuò)展而來的,其在繼承Berkeley Sockets的基礎(chǔ)上,又進(jìn)行了新的擴(kuò)充。使用MFC,可以在任何時(shí)候調(diào)用Win32函數(shù)、最大程度地利用Windows。其中的MFC庫集成了Windows Sockets API應(yīng)用程序接口,使得用戶可以用面向?qū)ο蟮姆椒ㄖ苯诱{(diào)用。第2章 相關(guān)技術(shù)概述 開發(fā)環(huán)境本節(jié)主要介紹本軟件系統(tǒng)的開發(fā)環(huán)境,以及運(yùn)用的編程工具等。用戶通過公眾信息網(wǎng)來傳輸?shù)男畔?,在傳輸?shù)倪^程中可能被竊取、篡改和偽造,信息的安全性和可靠性因此會(huì)大大的降低,所以內(nèi)網(wǎng)、專網(wǎng)還是不可缺少的。隨著我們國家的信息化飛速發(fā)展,許多企事業(yè)單位信息化程度大幅度提高。另外,許多企業(yè)已經(jīng)應(yīng)用了即時(shí)通訊類產(chǎn)品作為內(nèi)部交流的平臺(tái)。 國內(nèi)外現(xiàn)狀分析和研究成果即時(shí)通訊工具是目前使用最為普遍的網(wǎng)絡(luò)應(yīng)用軟件之一,繼出現(xiàn)在我們的計(jì)算機(jī)上之后,網(wǎng)易、新浪、搜狐等知名公司也迫不及待地加入了這一領(lǐng)域的競爭,而微軟、雅虎、AOL的國際巨頭公司也一刻沒有停止自己擴(kuò)張的腳步。發(fā)展到今天,大多數(shù)企業(yè)都應(yīng)用了局域網(wǎng),可見其在當(dāng)今社會(huì)的重要地位。Network munication目 錄摘 要 IAbstract II第1章 緒 論 1 課題選題背景 1 國內(nèi)外現(xiàn)狀分析和研究成果 1 課題研究內(nèi)容及意義 2第2章 相關(guān)技術(shù)概述 3 開發(fā)環(huán)境 3 開發(fā)工具簡介 3 Visual C++ MFC概述 3 WinSock網(wǎng)絡(luò)編程 3 Socket簡介 4 開發(fā)Windows Sockets網(wǎng)絡(luò)通信程序的軟、硬件環(huán)境 4 CSocket類編程模型 5 Sockets程序開發(fā)的技術(shù)要點(diǎn) 5 TCP/IP協(xié)議概述 6第3章 軟件需求分析 7 需求分析 7 功能需求分析 7 數(shù)據(jù)需求分析 7 性能需求分析 7 運(yùn)行需求分析 8 可行性分析 8 經(jīng)濟(jì)可行性分析 8 技術(shù)可行性分析 8 運(yùn)行可行性分析 8第4章 軟件系統(tǒng)設(shè)計(jì) 9 概要設(shè)計(jì) 9 基本框架設(shè)計(jì) 10 宏和數(shù)據(jù)結(jié)構(gòu)的定義 10 程序配置文件 10 調(diào)試模塊 10 主界面初始化 11 主界面布局 15 自繪按鈕 16 自繪好友列表框 18 好友管理 19 添加好友 19 刪除好友 21 與好友保持連接 22 聊天模塊 23 聊天室模塊 26 傳送文件模塊 29 共享屏幕模塊 32 白板模塊 34第5章 軟件測試 36 軟件測試的目的 36 軟件測試方法分類 36 靜態(tài)測試與動(dòng)態(tài)測試 36 黑盒測試與白盒測試 36 測試中的錯(cuò)誤分類 37 通訊軟件測試 38 測試用例設(shè)計(jì)要求 38 聊天模塊測試用例 38 測試總結(jié) 38結(jié) 論 40致 謝 41參考文獻(xiàn) 42附 錄 43第1章 緒 論 課題選題背景近年來,隨著全球信息化的不斷發(fā)展,網(wǎng)絡(luò)也在飛速發(fā)展。s Advanced Research Project agency (ARPA) to the University of California, Berkeley provided funding to enable them to achieve in the UNIX operating system, TCP / IP protocol. In this project, researchers for the TCP / IP Network Communication Development an API (application program interface). This API is called Socket Interface (socket). Today, SOCKET interface is a TCP / IP network of the most mon API, is the INTERNET application development on the most mon API.With the development of network technology and the demand of people39。文件傳輸功能是本軟件系統(tǒng)的一個(gè)亮點(diǎn),它可以讓兩個(gè)用戶之間實(shí)現(xiàn)文件的傳遞。本課題是開發(fā)一個(gè)基于UDP的企業(yè)內(nèi)部通信系統(tǒng),既可以應(yīng)用于封閉的局域網(wǎng)環(huán)境下,也可以在互聯(lián)網(wǎng)的環(huán)境下使用。在這個(gè)項(xiàng)目中,研究人員為TCP/IP網(wǎng)絡(luò)通信開發(fā)了一個(gè)API(應(yīng)用程序接口)。這個(gè)API稱為Socket接口(套接字)。本軟件是基于VC++,采用軟件工程的方法,應(yīng)用了程序設(shè)計(jì)技術(shù)、網(wǎng)絡(luò)技術(shù),運(yùn)用了WINSOCK相關(guān)API接口。通過聊天工具的使用,讓分布在不同地點(diǎn)、使用不同機(jī)器的一組用戶能夠及時(shí)進(jìn)行信息交流,以達(dá)到信息共享的目的,從而提高工作或者生活效率。s life, network munication has been more and more get the favor of people. This topic is to develop an internal munication system based on UDP, local area network (LAN) can be used in a closed environment, also can be used under the environment of Internet. This software is based on vc + + development, adopt the method of software engineering, application programming technology, network technology, using the WINSOCK API interface. WINSOCK is in Windows network munication programming API interface, also is the standard of Windows network main content of the research is how to use the socket network munication program, mainly pleted the client sends a message, send pictures to show online users and many people chat, file transfer, transfer function is one of the highlights of this software system, it can realize the file transfer between two the use of chat, let distribution in different locations, a group of users will be able to use different machine exchange of information in a timely manner, in order to achieve the purpose of information sharing, so as to improve the efficiency of work or test, the software operation is simple, flexibility is good, operation is stable, can be widely used.IIKey words:UDP。我們都知道局域網(wǎng)的存在,特別是在大型企業(yè),比如銀行、公安機(jī)關(guān)等等對(duì)網(wǎng)絡(luò)安全要求特別嚴(yán)格的企業(yè)單位都會(huì)有自己的局域網(wǎng),因?yàn)榫钟蚓W(wǎng)的安全可靠,使其不容易受到網(wǎng)絡(luò)病毒的攻擊,所以局域網(wǎng)得以在企業(yè)之中廣泛應(yīng)用。應(yīng)用局域網(wǎng)辦公的企業(yè),必須要有自己企業(yè)內(nèi)部的通訊軟件,然而,現(xiàn)在,在廣域網(wǎng)上,可盈利的通訊軟件到處都是,而局域網(wǎng)內(nèi)的通訊軟件卻很少,在功能上,也是參差不齊。國內(nèi)在使用的最普及的就是騰訊,微軟的MSN也受到商務(wù)人士的青睞;國外主要使用的是由美國在線出的ICQ、AMI以及微軟的MSN等。但絕大多數(shù)企事業(yè)單位只把即時(shí)通訊類產(chǎn)品作為邊緣產(chǎn)品,沒有充分的認(rèn)識(shí)到即時(shí)通訊類產(chǎn)品在工作中的重要作用,沒有想過去如何正確的應(yīng)用。企事業(yè)單位非常需要使用內(nèi)部即時(shí)通訊產(chǎn)品來提高工作效率?! ≡谕ㄐ殴ぞ呱?,我們習(xí)慣了通過類似于,MSN之類的程序軟件和天南地北的朋友聊天、發(fā)信息,不過所有聊天程序都需要Internet的支持,因此它們無法在局域網(wǎng)內(nèi)部大顯身手,那么是否想到過要讓單位內(nèi)部的員工,寢室周圍的同學(xué),不用上Internet就可以輕松體驗(yàn)到內(nèi)網(wǎng)通訊的樂趣呢?有了這種想法,本課題的研究內(nèi)容——開發(fā)局域網(wǎng)通信軟件就有了必要性,讓單位員工或者寢室同學(xué)不出內(nèi)網(wǎng)就能自由通信。 開發(fā)工具簡介本系統(tǒng)采用Windows 7中文操作系統(tǒng),包含Windows API的支持,使用面向?qū)ο蟮木幊坦ぞ遃isual C++ 。AppWizard可以用來生成初步的框架文件,資源編輯器用于幫助直觀地設(shè)計(jì)用戶接口,CLassWizard用來協(xié)助添加代碼到框架文件,并且提供文檔/視圖結(jié)構(gòu)支持,從而使用應(yīng)用程序開發(fā)變得輕松。而且,基于MFC的程序不僅小巧而且運(yùn)行速度快,這是因?yàn)閂isual C++非常接近Windows的底層,所以編譯器所編譯出來的程序質(zhì)量相當(dāng)?shù)母?,從而保證了Visual C++編寫出來的軟件產(chǎn)品擁有高效率的運(yùn)行速度。這些擴(kuò)充主要是提供了一些異步函數(shù),并增加了符合WINDOWS消息驅(qū)動(dòng)特性的網(wǎng)絡(luò)事件異步選擇機(jī)制?!ocket簡介 套接字(Socket)最初是由加利福尼亞大學(xué)Berkeley分校為UNIX操作系統(tǒng)開發(fā)的網(wǎng)絡(luò)通信接口,隨著UNIX操作系統(tǒng)的廣泛使用,套接字成為當(dāng)前最流行的網(wǎng)絡(luò)通信應(yīng)用程序接口之一。這些擴(kuò)充有利于應(yīng)用程序開發(fā)者編制符合Windows編程模式的軟件,它使在Windows下開發(fā)高性能的網(wǎng)絡(luò)通信程序成為可能。 所采用的編程語言一般可選目前較流行使用的可視化和采用面向?qū)ο蠹夹g(shù)的Microsoft Visual C++ 。 所采用的網(wǎng)絡(luò)通信協(xié)議一般是TCP / IP。TCP / IP核心協(xié)議連同網(wǎng)絡(luò)物理介質(zhì)(如網(wǎng)卡)一起,都是提供網(wǎng)絡(luò)應(yīng)用程序間相互通信的設(shè)施。 (2)使用這個(gè)對(duì)象的Create()成員函數(shù)產(chǎn)生一個(gè)socket對(duì)象。 (3)如果是客戶方套接字,則調(diào)用CAsyncSocket ∷Connect()函數(shù)與服務(wù)方套接字連接;如果是服務(wù)方套接字,則調(diào)用CAsyncSocket∷Listen()開始監(jiān)聽來自客戶方的連接請求,收到連接請求后,調(diào)用CAsyncSocket∷Accept()函數(shù)接受請求,建立連接。切記CArchive是不能和數(shù)據(jù)報(bào)套接字一起工作的。 (2)一般情況下,網(wǎng)絡(luò)通信程序是某應(yīng)用程序中的一模塊。即將數(shù)據(jù)的發(fā)或收,放在一個(gè)具有一定優(yōu)先級(jí)(一般宜取較高優(yōu)先級(jí))的輔助線程中,在數(shù)據(jù)發(fā)或收期間,主程序仍可進(jìn)行其它工作,譬如利用上一個(gè)周期收到的數(shù)據(jù)繪制曲線 。我們在充分利用Windows Sockets的基于消息的網(wǎng)絡(luò)事件異步選擇機(jī)制,用消息來驅(qū)動(dòng)數(shù)據(jù)的發(fā)送和接收的基礎(chǔ)上,結(jié)合使用其他措施,如將數(shù)據(jù)的收和發(fā)放在高優(yōu)先級(jí)線程,在軟件設(shè)計(jì)上,安排好時(shí)序,盡量避免在同一時(shí)間內(nèi),雙方都在向?qū)Ψ桨l(fā)送大量數(shù)據(jù)的情況發(fā)生,保證網(wǎng)絡(luò)要有足夠的帶寬等,成功地實(shí)現(xiàn)了數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性。從分層模型方面來講,TCP/IP由四個(gè)層次組成:鏈路層、網(wǎng)絡(luò)層、傳輸層、應(yīng)用層。網(wǎng)絡(luò)層協(xié)議包括IP協(xié)議(網(wǎng)際協(xié)議),ICMP協(xié)議(Internet互聯(lián)網(wǎng)控制報(bào)文協(xié)議),以及IGMP協(xié)議(Internet組管理協(xié)議)。由于運(yùn)輸層提供了高可靠性的端到端的通信,因此應(yīng)用層可以忽略所有這些細(xì)節(jié)。l Telnet遠(yuǎn)程登錄l FTP文件傳輸協(xié)議l SMTP簡單郵件傳輸協(xié)議l SNMP簡單網(wǎng)絡(luò)管理協(xié)議第3章 軟件需求分析 需求分析 功能需求分析(1)用戶端的基本聊天信息發(fā)送,這些基本聊天信息包括文本和圖片。在信息傳輸中,預(yù)計(jì)利用TCP/IP協(xié)議中的UDP協(xié)議,這是面向無連接的協(xié)議,但發(fā)送速度快,用于聊天信息傳輸用適合。因?yàn)槲募鬏斎胍髷?shù)據(jù)不能出錯(cuò),因此此模塊采用TCP協(xié)議。 數(shù)據(jù)需求分析(1)客戶端之間聊天信息。(3)客戶端向服務(wù)器端發(fā)送的確認(rèn)在線信息。在程序的設(shè)計(jì)過程中,要求能盡可能多的設(shè)想到用戶使用過程中可能發(fā)生的事件,并能在判斷事件后做出相應(yīng)的處理,使程序具有較高的容錯(cuò)性能。(4)模塊化設(shè)計(jì)此軟件的功能,不同的模塊實(shí)現(xiàn)不同的功能,使得軟件易于以后的維護(hù)與擴(kuò)展,在以后可以更好的完善本軟件的功能,更方便于在工作中的應(yīng)用。 可行性分析軟件可行性分析最根本的任務(wù)是對(duì)以后的行動(dòng)方針提出建議。 技術(shù)可行性分析首先我已經(jīng)搭建好開發(fā)所需要的軟硬件平臺(tái),并進(jìn)行了合理而完善的需求分析,做好了充分的前期準(zhǔn)備工作,其次因?yàn)楸境绦虻钠脚_(tái)將基于WINDOWS,將要使用網(wǎng)絡(luò)通