您的位置:首页 > 理论基础 > 计算机网络

一种自定义网络通信协议

2011-06-14 14:01 274 查看
#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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: