一种自定义网络通信协议

来源:互联网 发布:java 拖动滑块验证码 编辑:程序博客网 时间:2024/05/16 18:51
#define MAX_MSG_SIZE 2048typedef 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;