一种自定义网络通信协议

来源:互联网 发布:sift算法 opencv 编辑:程序博客网 时间:2024/05/03 12:43

/ 转自  /http://www.cppblog.com/aurain/archive/2009/12/31/104521.html

 

 

#define        MAX_MSG_SIZE                    2048

typedef 
enum _MSG_TYPE
{
    EN_CLIENT_REQ_PING                
= MSG_BASE_CLIENT_REQ,
    EN_CLIENT_REQ_LOGIN,
    
    
//////////////////////////////////////////////////////////////////////////
    EN_SVR_RES_PING                    = MSG_BASE_SVR_RES,
    EN_SVR_RES_LOGIN,
}
MSG_TYPE,*PMSG_TYPE;

typedef 
struct _MSG_HEAD
{
        ULONG      ulMagic;            //  幻数,以固定的格式开始,如'MYMS'
    USHORT    usLen;         // Tsdu长度,即实际传输数据长度,协议数据包联合体当前采用的结构体大小
    MSG_TYPE enMsgType;   // 包类型
        BOOL bEncrypt;      // 包内容是否加密
        USHORT    usCheckSum;   //  校验和,整个数据包的完整性检测
}
MSG_HEAD,*PMSG_HEAD;

typedef 
struct _SEND_TRACE_ROUTE
{
    ULONG        ulIdentify;
    ULONG        ulDstIP;
    USHORT    usTTL;
}
SEND_TRACE_ROUTE,*PSEND_TRACE_ROUTE;

typedef 
struct _SEND_TEST_RTT
{
    ULONG        ulIdentify;
    ULONG        ulDstIP;
    USHORT    usDstPort;
}
SEND_TEST_RTT,*PSEND_TEST_RTT;

typedef 
struct _PACKET_SEND
{
    MSG_HEAD            sUdpMsgHead;
    union
    
{
        CHAR                            szReq[MAX_MSG_SIZE];
        
        SEND_TRACE_ROUTE    sendTraceRoute;
        SEND_TEST_RTT            sendTestRtt;
    }
;
}
PACKET_SEND,*PPACKET_SEND;

原创粉丝点击