44 lines
2.0 KiB
C
44 lines
2.0 KiB
C
#pragma once
|
||
|
||
/*******
|
||
|
||
网关与内部服务器通信协议以及基础数据结构定义
|
||
|
||
**********************************************************/
|
||
|
||
#define RUNGATECODE 0xAA55AA55 // 网关通信
|
||
#define RUNTEMPCODE 0XEEFF // temp部分,也用来校验
|
||
#define GM_OPEN 1 // 打开新用户会话,当客户端连接到网关时网关向服务器发送此消息
|
||
#define GM_CLOSE 2 // 关闭用户会话,当客户端与网关的链接断开时网关向服务器发送此消息
|
||
#define GM_CHECKSERVER 3 // 网关回应服务器的心跳包消息
|
||
#define GM_CHECKCLIENT 4 // 服务器向网关发送心跳包消息
|
||
#define GM_DATA 5 // 网关转发用户通信数据到服务器,服务器向网关发送用户通信数据也使用此消息
|
||
#define GM_SERVERUSERINDEX 6 // 服务器回应网关,新连接的用户在服务器上分配的用户ID号
|
||
#define GM_APPKEEPALIVE 7 // 服务器给网关发的应用层心跳包
|
||
#define GM_APPKEEPALIVEACK 8 // 网关回应服务器的应用层心跳包
|
||
#define GM_APPBIGPACK 9 // 应用层大包
|
||
#define GM_GATEUSERINFO 10 // 网关通知服务器网关用户数量
|
||
#define GM_CLOSE_SERVER 0xEEF1 // 关闭网关程序
|
||
|
||
/* 网关通信协议头 */
|
||
|
||
typedef struct tagGateMsgHdr
|
||
{
|
||
unsigned long long nSocket; //网关连接套接字标识(用户套接字)
|
||
unsigned int dwGateCode; //标识码,总是为RUNGATECODE
|
||
WORD wSessionIdx; //网关用户ID(由网关生成)
|
||
WORD wIdent; //通信消息号
|
||
WORD wServerIdx; //服务器用户ID(由服务器返回)
|
||
WORD wTemp; //保留
|
||
int nDataSize; //通信数据大小(不包括协议头)
|
||
long long tickCount; //收到该数据包的时间
|
||
|
||
}GATEMSGHDR, *PGATEMSGHDR;
|
||
|
||
|
||
typedef struct tagGateUserInfo
|
||
{
|
||
int nGatePort; // 网关监听用户连接的端口号
|
||
int nUserCount; // 网关当前建立用户连接的数量
|
||
}GATEUSERINFO, *PGATEUSERINFO;
|