VC_中UDP通信的實現(xiàn)解析_第1頁
VC_中UDP通信的實現(xiàn)解析_第2頁
VC_中UDP通信的實現(xiàn)解析_第3頁
VC_中UDP通信的實現(xiàn)解析_第4頁
VC_中UDP通信的實現(xiàn)解析_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、收稿日期:2003-03-11作者簡介:陳 魁(1978,男,遼寧鐵嶺人,碩士研究生,研究方向 為Web挖掘、網(wǎng)絡安全等。V C +中U DP通信的實現(xiàn)陳魁(大連理工大學系統(tǒng)工程研究所,遼寧大連116023摘 要:WINSOCK是在 Windows進行網(wǎng)絡通信編程的 API接口 ,也是Windows環(huán)境下網(wǎng)絡編程的事實標準。UDP是通 信中常用的協(xié)議,文中給出在VC +中用UDP協(xié)議開發(fā)網(wǎng)絡通訊程序的一個框架模型,以該模型為基礎可以開發(fā)自己的通信程序。通過實驗證明該模型方便易行。關鍵詞:套接字;使用者資料包協(xié)議;通信中圖分類號:TP393文獻標識碼:A文章編號:1005-3751(2003 0

2、9-0038-02R ealizati on of U DP Communi cati on B ased on VC +CHEN Kui(In stitute of Systems Engin eeri ng , Dalia n Un iversity of Tech no logy ,Dalia n 116023,Chi nas APIAbstract :WINSOCK is the in terface of Win dows com muni cati on program of Win dows com 2muni cati on. UDP (User Datagram Protoc

3、ol is a mai n method of a model based on VC +. Based on this model can research and develop new that the model is convenient and practicable.K ey w ords :WINSOCK; User ; 0 弓 I 言Berkeley分校BSD UN IX系統(tǒng)的Socket API (套接字是在TCP/IP網(wǎng)絡環(huán)境下 進行通信的重要工具。20世紀90年代初,由Microsoft聯(lián)合了其他幾家公司共同 制定了一套 Windows下的網(wǎng)絡編程接 口 ,即 Wind

4、ows Sockets規(guī)范。它是BSD UN IX Sockets的重要擴充,主要是增加了一些異步函數(shù),并增加了符合Win dows消息驅動特性的網(wǎng)絡事件異步選擇機制。 Win 2dows Sockets規(guī)范是 一套開放的、 支持多種協(xié)議的 Win 2dows下的網(wǎng)絡編程接口 ,是Windows環(huán)境下 進行網(wǎng)絡編程的事實標準。Socket實際在計算機中提供了一個通信端口,可以通過這個端口與任何一個具有 Socket接口的計算機通信。 應用程序在網(wǎng)絡上傳 輸,接收的信息都通過這個Socket接口來實現(xiàn)。在應用開發(fā)中就像使用文件句柄 一樣,可以對Socket句柄進行讀、寫操作。VC +圭寸裝了原來

5、的 Windows Sockets庫函數(shù),產(chǎn)生了 CAsynSocket ,CSocket ,CSocket File等類,它們圭寸裝著有 關 Socket 的各種功 能,使編程變得更加簡單明了。根據(jù)傳輸數(shù)據(jù)類型的不同,Win dows Sockets支持套接字一般可分為三種。(1面向連接的字節(jié)流式套接字。采用TCP協(xié)議,提供雙向的、可靠的、有序的和無重復投遞的數(shù)據(jù)流。(2無連接的數(shù)據(jù)報套接字。 采用UDP協(xié)議,支持雙向的數(shù)據(jù)流,但不保證有序、可靠或無重復的投遞。(3原始套接字。提供對于支持套接字抽象概念的基礎通信協(xié)議的訪問。需 Windows Sockets 2. 0或以上版本 支持1,2。

6、1U DP的通信原理UDP (User Datagram Protocol 是一種無連接的協(xié)議,運行在服務器和客戶端的兩個程序不用建立連接,而是以收、發(fā)數(shù)據(jù)報作為通信方式,數(shù)據(jù)報信息以分離的形式傳 送,每個數(shù)據(jù)報文有獨立的源地址和目的地 址。這是提供給用戶進程的無連接協(xié)議,用于傳送數(shù)據(jù)而不執(zhí)行正確性檢查。使 用UDP數(shù)據(jù)報協(xié)議,服務器和客戶端不建立連 接,通信的內容以數(shù)據(jù)報”短信息 的形式實現(xiàn),但傳輸時不能保證對方一定能收到,也不能保證收到的報文次序。這個設計原理類似于日常收、發(fā)信件:可以隨時給朋友寫 信,只要在信封上注明對方的地址(以便郵寄 和自己的地址(以便回復。但對方能否收到信件,什么時

7、候收到 信件以及對方收到信件的次序是否和發(fā)信的次序相同難以保證3。圖1是無連接協(xié)議的套接字調用時序圖。第13卷第9期2003年9月微機 發(fā)展 Microcomputer Developme ntVol. 13 No. 9Sep.2003tgMO/zevQ理帝播亭上圖1無連接協(xié)議的套接字調用時序圖2 VC +中程序實例下面給出服務器端和客戶端的通信的主要程序,其中函數(shù)可以參考微軟的MSDN來理解。2. 1 建立U DP服務器class CDASocket :public Casy ncSocket /CDASocket類繼承 Casy ncSocket 類的 所有特性/Attributespub

8、lic :/Operati onspublic :CDASocket (Cvirtual (;/Overridespublic :public :virtual void On Receive (int n ErrorCode 重載 On Receive 函數(shù) 在其中添加接收后具體的處理/Impleme ntati onprotected :;void CDASocket :OnReceive(int nErrorCode /OnReceive函數(shù)接收數(shù)據(jù)處理/TODO :Add your specialized code here an d/or call the basechar buff

9、256;int ret =0;ret =Receive (buff ,256 ;if (ret =ERRORTRACE (“ ERROR !elseAfxMessageBox ( “ shoudao ” ;class CAs yn cSocket :O nReceive( nErrorCode ;CReceiveDlg :CReceive(CDASocket 3m -hSocket ;m -hSocket = new CDASocket (this ;erroif (! m -hSocket -Create (4000, SOCK QGRAM AfxMessageBox (“CReceiveD

10、lg :CReceiveDlg (delete m -hSocket ;2. 2 建立U DP客戶端class CDSocket :public CSocket/Attributespublic :/Operati onspublic :CDSocket (;(/protected :;void CSendDIg :OnSend(發(fā)送函數(shù),發(fā)送自己的數(shù)據(jù)或者 文件CDSocket m -hSocket ;m -hSocket. Create (4000,SOCK -DGRAM ;m -hSocket. Close (;3 結束語有了以上UDP協(xié)議通信模型,就可以在此基礎上添 加自己要發(fā)送的數(shù)據(jù)或者 文件來完善自己程序的功能。在Win dows Sockets應該特別注意出錯的處理,比如掉電,數(shù)據(jù)發(fā)送錯誤等等的處理,這些關系到程序是否可以可靠 的運行參考文獻1 Jamsa K ,Cope K. IN TERNET 編程M .北京:電子工業(yè)出 版社,1996.123-12712 朱三元

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論