青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Tauruser

Enjoy Every Day
posts - 34, comments - 95, trackbacks - 0, articles - 5
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

這兩天在研究 Windows Socket 編程,今天總算有了一點突破,把自己做的東西發上來。

CAsyncSocket 類在非常低的級別上封裝 Windows Sockets API CAsyncSocket 適合那些對網絡通信細節很了解,但希望利用回調的便利通知網絡事件的程序員使用。如果想利用 Windows Sockets 方便地處理 MFC 應用程序中的多個網絡協議,而又不想放棄靈活性,可以考慮使用 CAsyncSocket

?????? 本文介紹如何用 CasyncSocket 類進行雙機通信應用程序的開發。后面附有源程序。

?????? 要使用 CasyncSocket 進行通信,首先我們需要創建一個 SOCKET 。可以使用 CasyncSocket Create() 方法。

構造一個 CAsyncSocket 對象并使用該對象創建基礎 SOCKET 句柄。

套接字的創建遵循兩階段構造的 MFC 模式。

例如:

CAsyncSocket?sock;

sock.Create(?);?
// ?Use?the?default?parameters?
- ?或? - ?
CAsyncSocket
* ?pSocket? = ? new ?CAsyncSocket;

int ?nPort? = ? 27 ;

pSocket
-> ?Create(?nPort,?SOCK_DGRAM?);?

上面的第一個構造函數在堆棧上創建一個

CAsyncSocket 對象,第二個構造函數在堆上創建 CAsyncSocket 。上面的第一個 Create 調用使用默認參數創建流式套接字,第二個 Create 調用創建具有指定端口和地址的數據文報套接字。(任一個 Create 版本都可以和任一種構造方法一起使用。)

Create 的參數有:

端口 :短整型。

對于服務器套接字,必須指定端口 。對于客戶端套接字,通常接受此參數的默認值,該值允許 Windows Sockets 選擇端口。

套接字類型: SOCK_STREAM (默認值)或 SOCK_DGRAM

套接字 地址 ,如 “ftp.microsoft.com” “128.56.22.8”

該地址為網絡上的網際協議 (IP) 地址。很可能要始終依賴此參數的默認值。

?????? SOCKET 創建完之后就可使使用了。如果是客戶端就可以使用 CAsyncSocket::Connect 將此套接字對象連接到服務器套接字。如果是服務器端就可以使用使用 CAsyncSocket::Listen 偵聽來自客戶端的連接嘗試。接收到連接請求時,用 CAsyncSocket::Accept 接受該請求。

注意 Accept 成員函數采用對新的空 CSocket 對象的引用作為它的參數。在調用 Accept 之前,必須構造該對象。如果此套接字對象超出范圍,則連接關閉。

銷毀 CAsyncSocket 對象。

如果在堆棧上創建了套接字對象,當包含函數超出范圍時將調用此對象的析構函數。如果使用 new 運算符在堆上創建 了套接字對象,則您必須負責使用 delete 運算符銷毀此對象。

?????? 析構函數在銷毀對象之前調用對象的 Close 成員函數。

?

當連接建立的時候,就可以進行通信了。 CasycnSocket 類提供以下需要重載的成員函數。

OnAccept

當服務器端接收到連接請求的時候回調這個函數

OnClose

當連接關閉的時候,回調

OnConnect

當連接嘗試結束的時候,回調 ( 此時不能確保連接建立 )

OnOutOfBandData

Notifies a receiving socket that there is out-of-band data to be read on the socket, usually an urgent message.

OnReceive

接收到信息的時候回調

OnSend

當發送信息的時候回調

?

連接建立之后,就可以通過 send() receive() 進行數據的收發 ( 當為 TCP 連接的時候 ) ,通過 Sendto() ReceiveFrom () 收發數據,當為 UDP 連接的時候。

廢話少說,放上我的例程,整個程序的主要部份就是自己構造的一個新類 CmySocket() 進行通信。里面傳遞了當前聊天窗體的句柄句柄,以便使用回調函數調用窗體類進行事件響應。

?????? 程序不是很大,有興趣的朋友可以和我聯系。

源程序下載?

最后附上通訊的流程。

服務器

客戶端

// construct a socket

CSocket sockSrvr;

// construct a socket

CSocket sockClient;

// create the SOCKET

sockSrvr.Create(nPort); 1,2

// create the SOCKET

sockClient.Create( ); 2

// start listening

sockSrvr.Listen( );

?

?

// seek a connection

sockClient.Connect(strAddr, nPort); 3,4

// construct a new, empty socket

CSocket sockRecv;

// accept connection

sockSrvr.Accept( sockRecv ); 5

?

// construct file object

CSocketFile file(&sockRecv);

// construct file object

CSocketFile file(&sockClient);

// construct an archive

CArchive arIn(&file,
CArchive::load);

- -

CArchive arOut(&file,
CArchive::store);

- 或兩者 -

// construct an archive

CArchive arIn(&file,
CArchive::load);

- -

CArchive arOut(&file,
CArchive::store);

- 或兩者 -

// use the archive to pass data:

arIn >>dwValue;

- -

arOut < < dwValue; 6

// use the archive to pass data:

arIn >>dwValue;

- -

arOut < < dwValue; 6

1. 這里的 nPort 是端口號。有關端口的詳細信息,請參見 Windows Sockets:端口和套接字地址

2. 服務器必須始終指定一個端口,以便客戶端可以連接。 Create 調用有時也指定地址。在客戶端使用默認參數,這些參數要求 MFC 使用任何可用端口。

3. 這里的 nPort 是端口號, strAddr 是計算機地址或網際協議 (IP) 地址。

4. 計算機地址可以采用幾種形式:“ftp.microsoft.com”、“microsoft.com”。IP 地址采用“以點分隔的數字”形式,如“127.54.67.32”。 Connect 函數查看地址是否為以點分隔的數字(但它不確保該數字是網絡上的有效計算機)。如果不是,則 Connect 使用其他某種形式的計算機名稱。

5. 當在服務器端調用 Accept 時,傳遞對新套接字對象的引用。必須首先構造該對象,但不對它調用 Create 。注意,如果此套接字對象超出范圍,則連接關閉。MFC 將新對象連接到 SOCKET 句柄。可以在堆棧上構造此套接字(如表中所示)或在堆上構造。

6. 存檔和套接字文件在超出范圍時將被關閉。套接字對象超出范圍或被刪除時,對象的析構函數也對此套接字對象調用 Close 成員函數。有關順序的其他說明

Feedback

# re: 使用AsycnSocket類進行簡單雙機通訊  回復  更多評論   

2006-05-31 22:28 by 含笑半步癲
好東西,不過有沒有api版本的瞻仰一下。不會MFC:(

# re: 使用AsycnSocket類進行簡單雙機通訊  回復  更多評論   

2006-05-31 22:58 by Tauruser
不好意思,我對直接用API也不是很了解,我剛接觸網絡編程。

# re: 使用AsycnSocket類進行簡單雙機通訊  回復  更多評論   

2007-04-27 19:48 by laozhu
很不錯,雖然不是很復雜的內容,但是光看MSDN沒有這么簡單明了。很不錯。

# re: 使用AsycnSocket類進行簡單雙機通訊  回復  更多評論   

2008-10-03 11:24 by zake
自己寫的?完全是盜用Microsoft官方主頁中的MSDN詳解的內容嘛!
不是自己寫的,至少也應該注明出處吧,資源共享。

http://msdn.microsoft.com/zh-cn/library/cc468332(VS.71).aspx

這里面東西概括性很強。
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲一区在线播放| 亚洲国产91| 亚洲一区影院| 欧美综合国产精品久久丁香| 久久精品一区二区| 久久综合色播五月| 亚洲精品小视频在线观看| 亚洲欧美激情在线视频| 美腿丝袜亚洲色图| 国产农村妇女毛片精品久久麻豆| 亚洲国产欧美国产综合一区| 一区二区三区四区五区精品| 麻豆成人av| 亚洲一区二区av电影| 欧美一区综合| 欧美日韩中文| 亚洲国产精品一区二区三区| 久久精品理论片| 亚洲午夜激情| 欧美精品v日韩精品v国产精品| 激情亚洲网站| 久久久久国产一区二区三区| 亚洲国产日韩在线一区模特| 久久人人97超碰精品888| 欧美午夜电影在线| 亚洲激情不卡| 久久噜噜亚洲综合| 欧美一区二区三区精品| 欧美色精品天天在线观看视频| 亚洲国产日韩欧美综合久久| 久久一区二区三区国产精品 | 欧美日韩成人免费| 亚洲国产视频直播| 久久人人97超碰人人澡爱香蕉| 欧美日韩精品在线视频| 久久国产精品高清| 欧美一区二区在线视频| 午夜精品久久久久久久蜜桃app| 欧美xart系列高清| 久久久久五月天| 久久国产福利| 久久久夜夜夜| 亚洲国产91精品在线观看| 久久久久高清| 国产精品亚洲综合天堂夜夜| 欧美日韩一区二区视频在线观看| 久久久青草婷婷精品综合日韩 | 亚洲一区二区三区四区视频| 亚洲欧洲在线播放| 亚洲人成在线播放| 久久精品国产亚洲一区二区| 欧美va亚洲va日韩∨a综合色| 欧美激情网站在线观看| 久久精品国产一区二区三区免费看| 欧美一区在线直播| 久久久久一区二区三区| 国产一区在线播放| 99精品福利视频| 欧美一区二区免费观在线| 亚洲一区二区三区在线视频| 久久国产综合精品| 欧美人与性动交cc0o| 一区二区精品在线| 久久国产毛片| 国产精品v欧美精品∨日韩| 亚洲高清视频在线观看| 亚洲视频一二| 日韩视频在线免费| 亚洲日本中文字幕免费在线不卡| 亚洲精品综合久久中文字幕| 亚洲美女在线国产| 蜜桃久久av| 国产精品亚洲片夜色在线| 亚洲欧美日韩一区二区在线 | 亚洲视频在线观看| 欧美激情精品久久久久久黑人| 亚洲国产你懂的| 欧美高清视频www夜色资源网| 亚洲精品日韩在线观看| 亚洲成色999久久网站| 亚洲欧美日韩国产一区二区三区| 免费人成网站在线观看欧美高清| 久久久蜜桃一区二区人| 国产欧美日本在线| 激情一区二区三区| 亚洲国产欧美精品| 欧美一区二区三区的| 久久精品国产久精国产爱| 亚洲人成网站在线播| 久久青草福利网站| 午夜国产不卡在线观看视频| 亚洲影音先锋| 欧美性jizz18性欧美| 久久久久久久久久久一区 | 亚洲电影在线看| 欧美一区国产二区| 免费高清在线一区| 欧美区一区二区三区| 91久久夜色精品国产九色| 欧美三级乱码| 久久久www成人免费毛片麻豆| 夜夜狂射影院欧美极品| 午夜精品福利一区二区三区av| 精品999久久久| 久久这里只有精品视频首页| 欧美亚洲一区三区| 快射av在线播放一区| 一区二区三区在线观看国产| 久久蜜桃精品| 亚洲欧美视频| 99riav久久精品riav| 99riav久久精品riav| 久久青草久久| 日韩视频一区二区| 亚洲国产一区二区视频| 国产精品美女久久久久久免费 | 国产精品人人做人人爽人人添| 99国产精品久久久久久久成人热| 在线观看亚洲精品| 亚洲欧美日韩一区二区三区在线| 国产精品网站在线播放| 欧美精选在线| 媚黑女一区二区| 欧美成人激情视频免费观看| 久久免费偷拍视频| 欧美成人综合在线| 亚洲国产精品悠悠久久琪琪| 亚洲日本中文| 国产欧美日韩三级| 欧美一区二区视频在线观看2020| 宅男噜噜噜66一区二区66| 亚洲国产精品一区在线观看不卡| 欧美jizz19性欧美| 女人色偷偷aa久久天堂| 免费亚洲网站| 欧美日韩成人综合| 亚洲最新视频在线播放| 久久蜜桃香蕉精品一区二区三区| 红杏aⅴ成人免费视频| 一二三区精品| 伊人成人在线| 亚洲美女啪啪| 日韩一级在线观看| 欧美中文字幕不卡| 亚洲国产一区在线| 亚洲欧美日韩综合aⅴ视频| 亚洲国内精品| 久久国产欧美日韩精品| 日韩亚洲欧美中文三级| 欧美精品成人| 亚洲福利视频在线| 国内久久婷婷综合| 亚洲综合成人在线| 亚洲午夜性刺激影院| 欧美激情性爽国产精品17p| 欧美激情亚洲综合一区| 亚洲日本免费电影| 欧美精品国产一区二区| 亚洲人在线视频| 一区二区三区久久网| 国产精品家庭影院| 欧美亚洲专区| 欧美99在线视频观看| 一区二区电影免费在线观看| 欧美三级网址| 香蕉久久夜色| 欧美成人国产va精品日本一级| 在线成人www免费观看视频| 欧美r片在线| 正在播放欧美视频| 免费精品99久久国产综合精品| 日韩午夜激情| 国产婷婷色一区二区三区| 久久久久久亚洲精品杨幂换脸| 欧美成人精品1314www| 亚洲在线一区二区三区| 伊人影院久久| 欧美视频三区在线播放| 欧美制服丝袜| 亚洲欧洲一区二区天堂久久| 午夜国产精品影院在线观看| 韩国av一区二区三区| 欧美日韩亚洲国产精品| 久久国产精品一区二区三区| 99re66热这里只有精品3直播| 久久久精品2019中文字幕神马| 136国产福利精品导航| 欧美日韩一区二区视频在线观看| 欧美在线关看| 亚洲视频综合| 亚洲欧美视频在线观看视频| 含羞草久久爱69一区| 牛牛影视久久网| 亚洲综合色噜噜狠狠| 欧美电影在线| 久久精品女人天堂| 一区二区三区国产| 影音先锋欧美精品| 国产精品综合久久久| 欧美视频福利|