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

Error

C++博客 首頁 新隨筆 聯(lián)系 聚合 管理
  217 Posts :: 61 Stories :: 32 Comments :: 0 Trackbacks
應(yīng)為協(xié)議都是遵循:len type data這樣的結(jié)構(gòu),所以打包發(fā)送和接收解包可以有通用的做法,,,
 
//////////////////////////////////////////////////////////////////////////

//數(shù)據(jù)描述頭
struct tagDataDescribe
{
    WORD                            wDataSize;                        
//數(shù)據(jù)大小
    WORD                            wDataDescribe;                    //數(shù)據(jù)描述
};

//////////////////////////////////////////////////////////////////////////

//數(shù)據(jù)包輔助類(多包組合成一包)
class CSendPacketHelper
{
    
//變量定義
protected:
    WORD                                m_wDataSize;                    
//數(shù)據(jù)大小
    WORD                                m_wBufferSize;                    //緩沖大小
    BYTE                                * m_pcbBuffer;                    //緩沖指針

    
//函數(shù)定義
public:
    
//構(gòu)造函數(shù)
    CSendPacketHelper(void * pcbBuffer, WORD wBufferSize)
    {
        m_wDataSize
=0;
        m_wBufferSize
=wBufferSize;
        m_pcbBuffer
=(BYTE *)pcbBuffer;
    }
    
//析構(gòu)函數(shù)
    virtual ~CSendPacketHelper() {}

    
//功能函數(shù)
public:
    
//清理數(shù)據(jù)
    void CleanData() { m_wDataSize=0; }
    
//獲取大小
    WORD GetDataSize() { return m_wDataSize; }
    
//獲取緩沖
    void * GetDataBuffer() { return m_pcbBuffer; }
    
//插入數(shù)據(jù)(如果緩沖區(qū)長度不夠返回false)
    
// wDataSize, wDataType 實際上就是DataDescribe
    bool AddPacket(void * pData, WORD wDataSize, WORD wDataType)
    {
        
//效驗大小
        ASSERT((wDataSize+sizeof(tagDataDescribe)+m_wDataSize)<=m_wBufferSize);
        
if ((wDataSize+sizeof(tagDataDescribe)+m_wDataSize)>m_wBufferSize) return false;

        
//插入數(shù)據(jù)
        ASSERT(m_pcbBuffer!=NULL);
        tagDataDescribe 
* pDataDescribe=(tagDataDescribe *)(m_pcbBuffer+m_wDataSize);
        pDataDescribe
->wDataSize=wDataSize;
        pDataDescribe
->wDataDescribe=wDataType;

        
//插入數(shù)據(jù)
        if (wDataSize>0)
        {
            ASSERT(pData
!=NULL);
            CopyMemory(pDataDescribe
+1,pData,wDataSize);
        }

        
//設(shè)置數(shù)據(jù)
        m_wDataSize+=sizeof(tagDataDescribe)+wDataSize;
    
        
return true;
    }
};

/////////////////////////////////////////////////////////////////////////////////////////

//數(shù)據(jù)包輔助類
class CRecvPacketHelper
{
    
//變量定義
protected:
    WORD                                m_wDataPos;                        
//數(shù)據(jù)點
    WORD                                m_wDataSize;                    //數(shù)據(jù)大小
    BYTE                                * m_pcbBuffer;                    //緩沖指針

    
//函數(shù)定義
public:
    
//構(gòu)造函數(shù)
    CRecvPacketHelper(LPCVOID pcbBuffer, WORD wDataSize)
    {
        m_wDataPos
=0;
        m_wDataSize
=wDataSize;
        m_pcbBuffer
=(BYTE *)pcbBuffer;
    }
    
//析構(gòu)函數(shù)
    virtual ~CRecvPacketHelper() {}

    
//功能函數(shù)
public:
    
//獲取數(shù)據(jù)(返回一包數(shù)據(jù))
    
// @DataDescribe:數(shù)據(jù)描述(len type)
    
// @return: 數(shù)據(jù)
    void * GetData(tagDataDescribe & DataDescribe)
    {
        
//效驗數(shù)據(jù)
        if (m_wDataPos>=m_wDataSize) 
        {
            ASSERT(m_wDataPos
==m_wDataSize);
            DataDescribe.wDataSize
=0;
            DataDescribe.wDataDescribe
=DTP_NULL;
            
return NULL;
        }

        
//獲取數(shù)據(jù)
        ASSERT((m_wDataPos+sizeof(tagDataDescribe))<=m_wDataSize);
        CopyMemory(
&DataDescribe,m_pcbBuffer+m_wDataPos,sizeof(tagDataDescribe));
        ASSERT((m_wDataPos
+sizeof(tagDataDescribe)+DataDescribe.wDataSize)<=m_wDataSize);

        
//效驗數(shù)據(jù)
        if ((m_wDataPos+sizeof(tagDataDescribe)+DataDescribe.wDataSize)>m_wDataSize)
        {
            DataDescribe.wDataSize
=0;
            DataDescribe.wDataDescribe
=DTP_NULL;
            
return NULL;
        }

        
//設(shè)置數(shù)據(jù)
        void * pData=NULL;
        
if (DataDescribe.wDataSize>0) pData=m_pcbBuffer+m_wDataPos+sizeof(tagDataDescribe);
        m_wDataPos
+=sizeof(tagDataDescribe)+DataDescribe.wDataSize;
        
return pData;
    };
};
posted on 2011-07-04 10:50 Enic 閱讀(1502) 評論(0)  編輯 收藏 引用 所屬分類: 網(wǎng)狐棋牌源碼分析
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国内精品美女在线观看| 久久综合伊人77777| 欧美高清免费| 欧美呦呦网站| 欧美在线一二三| 麻豆免费精品视频| 欧美成人免费网| 国产精品丝袜xxxxxxx| 国产精品九九久久久久久久| 国产精品v欧美精品v日韩精品| 欧美午夜一区| 在线国产日韩| 中文在线不卡视频| 久久精品99国产精品酒店日本| 久久久视频精品| 最新国产成人av网站网址麻豆| 亚洲国产成人av在线| 亚洲欧美成人在线| 牛牛影视久久网| 国产一区二区av| 在线视频欧美一区| 久久综合一区二区| 亚洲天堂偷拍| 国产精品久久久久久超碰| 在线欧美日韩精品| 久久亚洲综合| 久久国产婷婷国产香蕉| 亚洲电影免费观看高清完整版| 亚洲精品在线免费| 蜜桃精品一区二区三区 | a4yy欧美一区二区三区| 欧美不卡视频一区发布| 欧美一区二区三区视频在线观看| 欧美日韩成人免费| 一区二区久久| 亚洲精品一区在线观看| 欧美成人一品| 亚洲婷婷国产精品电影人久久| 91久久久国产精品| 欧美日本免费| 亚洲欧美日韩精品| 欧美一区二区三区四区高清| 一区一区视频| 亚洲人成亚洲人成在线观看| 欧美大片在线观看一区二区| 一区二区三区欧美激情| 亚洲欧美视频一区| 亚洲第一精品夜夜躁人人躁| 亚洲黄色三级| 国产美女精品一区二区三区| 麻豆乱码国产一区二区三区| 欧美精品福利在线| 老司机67194精品线观看| 欧美另类一区| 久久福利影视| 欧美日韩在线电影| 麻豆精品视频在线观看| 国产精品99一区二区| 久久免费99精品久久久久久| 国产精品h在线观看| 欧美黑人一区二区三区| 国产亚洲一区在线| 亚洲欧美日韩久久精品| 久久国产精品久久久久久电车| 亚洲视频电影在线| 两个人的视频www国产精品| 一区二区免费看| 欧美精品一区在线发布| 在线不卡欧美| 另类激情亚洲| 久久天堂国产精品| 亚洲国产精品国自产拍av秋霞| 久久久之久亚州精品露出| 久久国产欧美精品| 亚洲电影在线| 亚洲国产精品嫩草影院| 麻豆视频一区二区| 亚洲欧洲精品一区二区三区波多野1战4 | 亚洲青色在线| 亚洲国内精品在线| 欧美激情自拍| 亚洲一区二区伦理| 午夜精品电影| 原创国产精品91| 亚洲国内精品| 国产精品久久久久av| 久久久久久亚洲精品不卡4k岛国| 久久激情婷婷| 99视频在线观看一区三区| 99在线热播精品免费99热| 国产精品亚洲综合天堂夜夜| 久久久久看片| 欧美精品一卡| 久久精品国产亚洲5555| 男女精品网站| 久久av一区二区| 欧美黑人国产人伦爽爽爽| 久久av一区二区三区| 欧美激情精品久久久久久大尺度| 午夜日韩电影| 欧美福利电影在线观看| 欧美一乱一性一交一视频| 欧美r片在线| 久久精品一本| 欧美日韩综合网| 免费亚洲电影| 国产精品视频免费观看| 亚洲高清自拍| 国产欧美精品在线播放| 亚洲黄色三级| 亚洲国产高清aⅴ视频| 亚洲欧美视频在线观看| 亚洲美女免费精品视频在线观看| 午夜精品一区二区三区电影天堂| 久久影音先锋| 亚洲午夜影视影院在线观看| 久久久久国产免费免费| 亚洲欧美日韩国产一区| 欧美电影资源| 美女精品一区| 国产美女在线精品免费观看| 亚洲激情女人| 亚洲国产另类久久精品| 久久久999| 久久久久成人精品免费播放动漫| 欧美视频成人| 亚洲免费观看高清完整版在线观看熊| 韩国三级在线一区| 午夜视黄欧洲亚洲| 欧美在线观看一二区| 欧美午夜精品理论片a级按摩| 亚洲国产精品一区二区第一页| 国内一区二区三区在线视频| 亚洲一区二区三区免费观看| 亚洲调教视频在线观看| 欧美日韩xxxxx| 亚洲东热激情| 91久久线看在观草草青青| 久久免费国产精品| 美女脱光内衣内裤视频久久网站| 国产日韩欧美在线一区| 午夜精品久久久久久久久| 欧美在线3区| 国产欧美 在线欧美| 亚洲欧美日韩高清| 久久精品国产2020观看福利| 国产一区二区三区四区老人| 欧美在线观看日本一区| 久久av红桃一区二区小说| 国内成+人亚洲+欧美+综合在线| 午夜视频一区二区| 葵司免费一区二区三区四区五区| 在线国产日韩| 欧美屁股在线| 亚洲一区二区免费| 久久精品国产视频| 亚洲大胆人体视频| 欧美激情精品久久久久久免费印度| 亚洲黄色视屏| 欧美一区二区三区免费看| 伊人精品在线| 欧美成人a∨高清免费观看| 日韩视频一区二区三区在线播放免费观看 | 欧美视频一区二区三区| 一区电影在线观看| 久久国产视频网| 亚洲国产高潮在线观看| 欧美精品一区二区三区四区| 亚洲网站视频| 老色批av在线精品| 亚洲午夜精品在线| 国产一区二区三区黄视频| 欧美va天堂在线| 亚洲午夜在线观看| 欧美成人精品高清在线播放| 亚洲素人一区二区| 伊人婷婷久久| 国产精品扒开腿爽爽爽视频| 久久久精品一区| 夜夜嗨av色综合久久久综合网| 久久精品人人做人人爽| 欧美视频一二三区| 久久人人爽人人爽爽久久| 一区二区欧美日韩| 久久夜色精品| 亚洲一区二区三区四区五区午夜| 国产性做久久久久久| 欧美日韩精品一本二本三本| 欧美在线视频免费| 亚洲精品免费在线播放| 久久久中精品2020中文| 亚洲女人天堂成人av在线| 亚洲黄色免费| 国产一区清纯| 国产视频一区免费看| 欧美日韩一区二区三| 欧美a级大片| 久久人91精品久久久久久不卡| 亚洲欧美日韩另类| 亚洲一区二区三区中文字幕|