【正文】
ndows Sockets網(wǎng)絡通信程序的軟、硬件環(huán)境所采用的操作系統(tǒng)軟件可以是Windows XP,Windows 7,因為它們都支持Windows Sockets API,在以下的介紹中,我們將以在Windows XP環(huán)境下的開發(fā)為例。這些擴充主要是提供了一些異步函數(shù),并增加了符合Windows消息驅(qū)動特性的網(wǎng)絡事件異步選擇機制。運行組件:Windows Sockets 應用程序接口的動態(tài)鏈接庫()。 WinSock網(wǎng)絡編程Windows Sockets是從Berkeley Sockets擴展而來的,其在繼承Berkeley Sockets的基礎(chǔ)上,又進行了新的擴充。使用MFC,可以在任何時候調(diào)用Win32函數(shù)、最大程度地利用Windows。其中的MFC庫集成了Windows Sockets API應用程序接口,使得用戶可以用面向?qū)ο蟮姆椒ㄖ苯诱{(diào)用。第2章 相關(guān)技術(shù)概述 開發(fā)環(huán)境本節(jié)主要介紹本軟件系統(tǒng)的開發(fā)環(huán)境,以及運用的編程工具等。用戶通過公眾信息網(wǎng)來傳輸?shù)男畔?,在傳輸?shù)倪^程中可能被竊取、篡改和偽造,信息的安全性和可靠性因此會大大的降低,所以內(nèi)網(wǎng)、專網(wǎng)還是不可缺少的。隨著我們國家的信息化飛速發(fā)展,許多企事業(yè)單位信息化程度大幅度提高。另外,許多企業(yè)已經(jīng)應用了即時通訊類產(chǎn)品作為內(nèi)部交流的平臺。 國內(nèi)外現(xiàn)狀分析和研究成果即時通訊工具是目前使用最為普遍的網(wǎng)絡應用軟件之一,繼出現(xiàn)在我們的計算機上之后,網(wǎng)易、新浪、搜狐等知名公司也迫不及待地加入了這一領(lǐng)域的競爭,而微軟、雅虎、AOL的國際巨頭公司也一刻沒有停止自己擴張的腳步。發(fā)展到今天,大多數(shù)企業(yè)都應用了局域網(wǎng),可見其在當今社會的重要地位。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)絡編程 3 Socket簡介 4 開發(fā)Windows Sockets網(wǎng)絡通信程序的軟、硬件環(huán)境 4 CSocket類編程模型 5 Sockets程序開發(fā)的技術(shù)要點 5 TCP/IP協(xié)議概述 6第3章 軟件需求分析 7 需求分析 7 功能需求分析 7 數(shù)據(jù)需求分析 7 性能需求分析 7 運行需求分析 8 可行性分析 8 經(jīng)濟可行性分析 8 技術(shù)可行性分析 8 運行可行性分析 8第4章 軟件系統(tǒng)設計 9 概要設計 9 基本框架設計 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)測試與動態(tài)測試 36 黑盒測試與白盒測試 36 測試中的錯誤分類 37 通訊軟件測試 38 測試用例設計要求 38 聊天模塊測試用例 38 測試總結(jié) 38結(jié) 論 40致 謝 41參考文獻 42附 錄 43第1章 緒 論 課題選題背景近年來,隨著全球信息化的不斷發(fā)展,網(wǎng)絡也在飛速發(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)的一個亮點,它可以讓兩個用戶之間實現(xiàn)文件的傳遞。本課題是開發(fā)一個基于UDP的企業(yè)內(nèi)部通信系統(tǒng),既可以應用于封閉的局域網(wǎng)環(huán)境下,也可以在互聯(lián)網(wǎng)的環(huán)境下使用。在這個項目中,研究人員為TCP/IP網(wǎng)絡通信開發(fā)了一個API(應用程序接口)。這個API稱為Socket接口(套接字)。本軟件是基于VC++,采用軟件工程的方法,應用了程序設計技術(shù)、網(wǎng)絡技術(shù),運用了WINSOCK相關(guān)API接口。通過聊天工具的使用,讓分布在不同地點、使用不同機器的一組用戶能夠及時進行信息交流,以達到信息共享的目的,從而提高工作或者生活效率。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è),比如銀行、公安機關(guān)等等對網(wǎng)絡安全要求特別嚴格的企業(yè)單位都會有自己的局域網(wǎng),因為局域網(wǎng)的安全可靠,使其不容易受到網(wǎng)絡病毒的攻擊,所以局域網(wǎng)得以在企業(yè)之中廣泛應用。應用局域網(wǎng)辦公的企業(yè),必須要有自己企業(yè)內(nèi)部的通訊軟件,然而,現(xiàn)在,在廣域網(wǎng)上,可盈利的通訊軟件到處都是,而局域網(wǎng)內(nèi)的通訊軟件卻很少,在功能上,也是參差不齊。國內(nèi)在使用的最普及的就是騰訊,微軟的MSN也受到商務人士的青睞;國外主要使用的是由美國在線出的ICQ、AMI以及微軟的MSN等。但絕大多數(shù)企事業(yè)單位只把即時通訊類產(chǎn)品作為邊緣產(chǎn)品,沒有充分的認識到即時通訊類產(chǎn)品在工作中的重要作用,沒有想過去如何正確的應用。企事業(yè)單位非常需要使用內(nèi)部即時通訊產(chǎn)品來提高工作效率?! ≡谕ㄐ殴ぞ呱?,我們習慣了通過類似于,MSN之類的程序軟件和天南地北的朋友聊天、發(fā)信息,不過所有聊天程序都需要Internet的支持,因此它們無法在局域網(wǎng)內(nèi)部大顯身手,那么是否想到過要讓單位內(nèi)部的員工,寢室周圍的同學,不用上Internet就可以輕松體驗到內(nèi)網(wǎng)通訊的樂趣呢?有了這種想法,本課題的研究內(nèi)容——開發(fā)局域網(wǎng)通信軟件就有了必要性,讓單位員工或者寢室同學不出內(nèi)網(wǎng)就能自由通信。 開發(fā)工具簡介本系統(tǒng)采用Windows 7中文操作系統(tǒng),包含Windows API的支持,使用面向?qū)ο蟮木幊坦ぞ遃isual C++ 。AppWizard可以用來生成初步的框架文件,資源編輯器用于幫助直觀地設計用戶接口,CLassWizard用來協(xié)助添加代碼到框架文件,并且提供文檔/視圖結(jié)構(gòu)支持,從而使用應用程序開發(fā)變得輕松。而且,基于MFC的程序不僅小巧而且運行速度快,這是因為Visual C++非常接近Windows的底層,所以編譯器所編譯出來的程序質(zhì)量相當?shù)母?,從而保證了Visual C++編寫出來的軟件產(chǎn)品擁有高效率的運行速度。這些擴充主要是提供了一些異步函數(shù),并增加了符合WINDOWS消息驅(qū)動特性的網(wǎng)絡事件異步選擇機制?!ocket簡介 套接字(Socket)最初是由加利福尼亞大學Berkeley分校為UNIX操作系統(tǒng)開發(fā)的網(wǎng)絡通信接口,隨著UNIX操作系統(tǒng)的廣泛使用,套接字成為當前最流行的網(wǎng)絡通信應用程序接口之一。這些擴充有利于應用程序開發(fā)者編制符合Windows編程模式的軟件,它使在Windows下開發(fā)高性能的網(wǎng)絡通信程序成為可能。 所采用的編程語言一般可選目前較流行使用的可視化和采用面向?qū)ο蠹夹g(shù)的Microsoft Visual C++ 。 所采用的網(wǎng)絡通信協(xié)議一般是TCP / IP。TCP / IP核心協(xié)議連同網(wǎng)絡物理介質(zhì)(如網(wǎng)卡)一起,都是提供網(wǎng)絡應用程序間相互通信的設施。 (2)使用這個對象的Create()成員函數(shù)產(chǎn)生一個socket對象。 (3)如果是客戶方套接字,則調(diào)用CAsyncSocket ∷Connect()函數(shù)與服務方套接字連接;如果是服務方套接字,則調(diào)用CAsyncSocket∷Listen()開始監(jiān)聽來自客戶方的連接請求,收到連接請求后,調(diào)用CAsyncSocket∷Accept()函數(shù)接受請求,建立連接。切記CArchive是不能和數(shù)據(jù)報套接字一起工作的。 (2)一般情況下,網(wǎng)絡通信程序是某應用程序中的一模塊。即將數(shù)據(jù)的發(fā)或收,放在一個具有一定優(yōu)先級(一般宜取較高優(yōu)先級)的輔助線程中,在數(shù)據(jù)發(fā)或收期間,主程序仍可進行其它工作,譬如利用上一個周期收到的數(shù)據(jù)繪制曲線 。我們在充分利用Windows Sockets的基于消息的網(wǎng)絡事件異步選擇機制,用消息來驅(qū)動數(shù)據(jù)的發(fā)送和接收的基礎(chǔ)上,結(jié)合使用其他措施,如將數(shù)據(jù)的收和發(fā)放在高優(yōu)先級線程,在軟件設計上,安排好時序,盡量避免在同一時間內(nèi),雙方都在向?qū)Ψ桨l(fā)送大量數(shù)據(jù)的情況發(fā)生,保證網(wǎng)絡要有足夠的帶寬等,成功地實現(xiàn)了數(shù)據(jù)傳輸?shù)膶崟r性。從分層模型方面來講,TCP/IP由四個層次組成:鏈路層、網(wǎng)絡層、傳輸層、應用層。網(wǎng)絡層協(xié)議包括IP協(xié)議(網(wǎng)際協(xié)議),ICMP協(xié)議(Internet互聯(lián)網(wǎng)控制報文協(xié)議),以及IGMP協(xié)議(Internet組管理協(xié)議)。由于運輸層提供了高可靠性的端到端的通信,因此應用層可以忽略所有這些細節(jié)。l Telnet遠程登錄l FTP文件傳輸協(xié)議l SMTP簡單郵件傳輸協(xié)議l SNMP簡單網(wǎng)絡管理協(xié)議第3章 軟件需求分析 需求分析 功能需求分析(1)用戶端的基本聊天信息發(fā)送,這些基本聊天信息包括文本和圖片。在信息傳輸中,預計利用TCP/IP協(xié)議中的UDP協(xié)議,這是面向無連接的協(xié)議,但發(fā)送速度快,用于聊天信息傳輸用適合。因為文件傳輸入要求數(shù)據(jù)不能出錯,因此此模塊采用TCP協(xié)議?!?shù)據(jù)需求分析(1)客戶端之間聊天信息。(3)客戶端向服務器端發(fā)送的確認在線信息。在程序的設計過程中,要求能盡可能多的設想到用戶使用過程中可能發(fā)生的事件,并能在判斷事件后做出相應的處理,使程序具有較高的容錯性能。(4)模塊化設計此軟件的功能,不同的模塊實現(xiàn)不同的功能,使得軟件易于以后的維護與擴展,在以后可以更好的完善本軟件的功能,更方便于在工作中的應用。 可行性分析軟件可行性分析最根本的任務是對以后的行動方針提出建議。 技術(shù)可行性分析首先我已經(jīng)搭建好開發(fā)所需要的軟硬件平臺,并進行了合理而完善的需求分析,做好了充分的前期準備工作,其次因為本程序的平臺將基于WINDOWS,將要使用網(wǎng)絡通