多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > 網絡編程(58)—— Windows下使用CSocket搭建回聲服務端和客戶端

網絡編程(58)—— Windows下使用CSocket搭建回聲服務端和客戶端

來源:程序員人生   發布時間:2017-03-09 08:49:55 閱讀次數:6046次

        CSocket是對CAsyncSocket的1個再次封裝,它將CAsyncSocket這類異步不阻塞的socket封裝成了同步阻塞的socket。它的實現原理其實很簡單,我們應當留意到在CAsyncSocketAcceptSendReceive函數被定義成了虛函數:

virtual BOOL Accept( CAsyncSocket& rConnectedSocket, SOCKADDR* lpSockAddr = NULL, int* lpSockAddrLen = NULL );

virtual int Receive( void* lpBuf, int nBufLen, int nFlags = 0 );

virtual int Send( const void* lpBuf, int nBufLen, int nFlags = 0 );

        CSocket就是通過繼承上述3個虛函數,在函數內部獲得調用WSAGetLastError獲得毛病,如果毛病為WSAEWOULDBLOCK說明IO操作未能完成,此時,它將進入消息循環,知道等到該IO事件完成為止。如果偽代碼,表示以下:

BOOL CSocket::Accept(…)
{
    CAsyncSocket:: Accept(…)
   {
	if(WSAGetLastError()==WSAEWOULDBLOCK)
       {
	    while(True)
            {
	        MSG msg;
	        if(PeekMessage(&msg,WM_SOCKET_NOTIFY))
	        {
		    if(msg.message== WM_SOCKET_NOTIFY)
		    {
			…
			break;
                    }
                }
            }
        }
	…
     }
     …
  }
  …
}


        其實對使用者來說使用CAsyncSocket和CSocket基本編程步驟都是1致的,不同只是它們二者之間的內部的處理邏輯。比如上1文中,我們自定義了1個CMySocket類繼承自CAsyncSocket,如果我想要使用CSocket類,只需將上1文中的CMySocket父類改成CSocket:

class CMySocket : public CSocket
{
…
}

     其他代碼不需要任何的改動,我們就可以得到功能相同的服務端和客戶端

 Github位置:
https://github.com/HymanLiuTS/NetDevelopment
克隆本項目:
git clone git@github.com:HymanLiuTS/NetDevelopment.git
獲得本文源代碼:
git checkout NL58


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 激情久久久久久久久久 | 久久精品综合国产二区 | 夜夜影院未满十八勿进 | 日产一一到六区网站免费 | 日韩欧美中国a v | 亚洲乱码中文字幕综合 | 在线精品视频成人网 | 日韩欧美一区二区精品久久 | 最近中文字幕免费视频 | 欧美成人精品不卡视频在线观看 | 色阁在线 | 男女性刺激爽爽免费视频 | 99影视在线视频免费观看 | 国产精品人成 | 农村妇女又色黄一级毛片 | 国产精品久久永久免费 | 福利国产 | 久久天天躁狠狠躁夜夜2020一 | 亚洲欧洲在线视频 | 亚洲免费网站在线观看 | 亚洲第一色区 | 欧美色综合天天综合高清网 | 亚洲一区二区在线成人 | 黄色网址免费在线 | free性欧美hd粗暴 | 久久国产精品久久久久久久久久 | 性做久久久久久久免费看 | 国产99对白在线播放 | 国产一区二区三区夜色 | 国产美女福利视频福利 | 在线观看网址 | 免费爽视频| 国产高清一区二区三区免费视频 | 欧美黄色一级片视频 | 精品一区二区三区免费视频 | 精品视频一二三区 | 一级毛片一级毛片一级级毛片 | 操操操操网 | 一级做a爰片久久毛片人呢 一级做a爰片久久毛片图片 | 国产福利免费看 | 日本三级日本三级日本三级极 |