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

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>
            免费观看在线综合| 美乳少妇欧美精品| 久久中文字幕一区| 欧美一区二区三区日韩| 国产精品久久久久久久久借妻| 欧美日韩色一区| 9色porny自拍视频一区二区| 在线一区日本视频| 亚洲国产专区| 欧美国产精品日韩| 亚洲大胆人体在线| 亚洲国产日韩欧美在线99| 可以免费看不卡的av网站| 一区精品久久| 亚洲国产精品一区二区www在线 | 毛片基地黄久久久久久天堂| 国产精品免费视频xxxx| 午夜久久99| 欧美一区二区性| 影音先锋日韩有码| 亚洲精品国产系列| 欧美韩日一区二区三区| 18成人免费观看视频| 女人色偷偷aa久久天堂| 先锋影音国产一区| 伊人久久婷婷色综合98网| 久久综合亚洲社区| 免费高清在线视频一区·| 亚洲精品久久久久久一区二区| 亚洲电影毛片| 免费观看成人网| 一区二区三区高清在线观看| 亚洲国产日韩欧美在线动漫| 欧美紧缚bdsm在线视频| 亚洲在线不卡| 午夜精品一区二区三区四区| 国产精品制服诱惑| 亚洲丁香婷深爱综合| 欧美色图天堂网| 久久婷婷国产综合国色天香| 久久精品国产综合| 亚洲一区二区黄| 久久亚洲精品一区| 午夜精品区一区二区三| 久久免费99精品久久久久久| 亚洲国产精品尤物yw在线观看| 亚洲精品一二三| 狠狠色狠狠色综合人人| 亚洲精品在线免费| 亚洲成人在线免费| 欧美一区观看| 久久国产精品72免费观看| 欧美日韩国产区一| 亚洲精品一区二区三区在线观看 | 欧美亚洲综合在线| 久热精品在线视频| 久久久综合精品| 国产欧美视频一区二区| 亚洲乱码久久| 一本一本a久久| 欧美日本国产一区| 99视频热这里只有精品免费| 在线观看欧美一区| 欧美.com| 最新日韩在线| 亚洲系列中文字幕| 国产精品美女主播| 午夜精品久久久久久久| 午夜伦理片一区| 国产美女精品视频| 欧美在线观看视频一区二区| 亚洲天堂男人| 国产精品美腿一区在线看| 在线午夜精品| 久久精品视频在线播放| 国产亚洲欧洲| 免费观看成人网| 99精品欧美一区二区三区| 一本色道久久综合亚洲精品按摩 | 一区二区三区**美女毛片| 亚洲欧美美女| 欧美一区二区啪啪| 另类成人小视频在线| 国产一区二区三区不卡在线观看| 亚洲在线观看免费视频| 欧美在线观看网站| 欲香欲色天天天综合和网| 久久久另类综合| 91久久嫩草影院一区二区| 夜夜精品视频| 国产网站欧美日韩免费精品在线观看 | 夜夜嗨av一区二区三区四季av| 欧美精品 国产精品| 99国产精品国产精品毛片| 亚洲欧美国产日韩中文字幕| 欧美日韩另类国产亚洲欧美一级| 夜夜精品视频一区二区| 久久国产黑丝| 一本色道久久88亚洲综合88 | 亚洲精品免费一区二区三区| 日韩视频一区二区在线观看| 欧美日韩1区| 久久av最新网址| 99精品福利视频| 美女尤物久久精品| 性久久久久久久久久久久| 韩国女主播一区二区三区| 欧美成人精品一区| 久久精品国产2020观看福利| 欧美激情精品久久久久久久变态| 一本久久综合亚洲鲁鲁五月天| 国产精品视频导航| 欧美激情性爽国产精品17p| 亚洲永久字幕| 亚洲精品在线观看免费| 久久久久久久久久久久久久一区 | 亚洲欧美国产精品va在线观看| 精品成人在线观看| 国产精品视频yy9099| 免费观看久久久4p| 久久久久久999| 欧美亚洲系列| 亚洲私人影院| 999亚洲国产精| 亚洲国产欧美日韩另类综合| 亚洲欧美成人精品| 一区二区三区www| 亚洲伦理精品| 亚洲欧洲美洲综合色网| 国产亚洲福利| 国产精品午夜视频| 欧美三级欧美一级| 欧美精品免费播放| 奶水喷射视频一区| 久久在线观看视频| 久久亚洲欧美| 久久久久国产精品麻豆ai换脸| 国内精品视频666| 国产精品社区| 国产亚洲成av人在线观看导航 | 国产精品视频yy9099| 猫咪成人在线观看| 亚洲日本无吗高清不卡| 久久久欧美精品| 麻豆成人在线| 欧美成人亚洲| 亚洲国产综合视频在线观看| 久久频这里精品99香蕉| 久久久爽爽爽美女图片| 久久国产毛片| 欧美岛国激情| 亚洲精品日韩综合观看成人91 | 亚洲精品中文字幕在线| 亚洲黄色影片| 在线亚洲一区| 午夜精品免费视频| 久久伊人精品天天| 欧美大秀在线观看| 亚洲最新视频在线播放| 一本色道久久88综合亚洲精品ⅰ| 亚洲人成在线观看一区二区| 欧美国产一区二区在线观看| 久久综合中文色婷婷| 欧美成人在线免费观看| 亚洲国产小视频在线观看| 99ri日韩精品视频| 午夜伦理片一区| 久久只精品国产| 欧美日韩国产天堂| 国产女主播在线一区二区| 国产一区二区高清不卡| 伊人久久综合| 在线视频精品| 久久夜色精品国产欧美乱极品| 欧美不卡视频一区发布| 亚洲日本乱码在线观看| 亚洲性感激情| 女人色偷偷aa久久天堂| 欧美性大战久久久久久久蜜臀| 免费久久99精品国产自| 欧美成人按摩| 午夜电影亚洲| 欧美精品一区在线| 一区二区亚洲| 午夜欧美精品| 亚洲欧洲一区二区在线观看| 亚洲六月丁香色婷婷综合久久| 性欧美超级视频| 欧美日韩和欧美的一区二区| 国产精品www网站| 亚洲人成艺术| 久久婷婷麻豆| 亚洲男同1069视频| 欧美激情偷拍| 亚洲国产一区视频| 久久在线91| 亚洲专区免费| 国产精品乱看| 99国产精品久久久| 亚洲第一天堂无码专区|