123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- #pragma once
- #define NAME_LEN 128
- #define DATA_LEN 256
- #pragma region Simple communication protocol
- #pragma pack(push)
- #pragma pack(1)
- typedef enum
- {
- //////////////////////////////////////////////////////////////////////////
- // 服务端:发出劫持消息; 客户端返回:成功/失败
- S2C_HIJACK,
- // 服务端:发出恢复消息; 客户端返回:成功/失败;
- S2C_RESUME,
- //\ 服务端:发出Connect消息; 客户端返回:成功/失败;
- S2C_CONNECT,
- //\ 服务端:发出Disconnect消息; 客户端返回:成功/失败;
- S2C_DISCONNECT,
- //\ 服务端:发出CheckFW消息; 客户端返回:成功/失败;
- S2C_CHECKFW,
- //\ 服务端:发出Go消息; 客户端返回:成功/失败;
- S2C_GO,
- //////////////////////////////////////////////////////////////////////////
- // 客户端:响应服务器S2C_HIJACK;
- C2S_HIJACK,
- // 客户端:响应服务器S2C_RESUME;
- C2S_RESUME,
- // 客户端:发出Disconnect触发结果;
- C2S_DISCONNECT,
- // 客户端:发出Connect触发结果;成功/失败;
- C2S_CONNECT,
- // 客户端:发出CheckFW触发结果; 成功/失败; (成功->服务端读取当前版本);
- C2S_CHECKFW,
- // 客户端:发出Go触发结果;成功/失败; 成功->耗时值、输出目录
- C2S_GO,
- // 客户端:通信错误;
- C2S_COMMUNICATION_ERROR,
- // 客户端:产生异常时通知服务端结束程序;
- C2S_EXCEPTION,
- };
- typedef struct _MSG_INFO_
- {
- // 客户端ID;
- DWORD dwClientId;
- // 客户端名称;
- TCHAR szClientName[NAME_LEN];
- // 按钮执行结果;
- BYTE byResult;
- // 按钮数据;
- BYTE byData[DATA_LEN];
- _MSG_INFO_()
- {
- byResult = 0;
- dwClientId = 0;
- memset(byData, 0, DATA_LEN);
- memset(szClientName, 0, sizeof(TCHAR)*NAME_LEN);
- }
- _MSG_INFO_ &operator=(const _MSG_INFO_ &that)
- {
- if ( this == &that )
- return *this;
- dwClientId = that.dwClientId;
- byResult = that.byResult;
- memcpy(szClientName, that.szClientName, NAME_LEN);
- memcpy(byData, that.byData, DATA_LEN);
- return *this;
- }
- }MSG_INFO,*LPMSG_INFO;
- typedef struct _HEADER_
- {
- // 协议标识符;
- BYTE byProtocol;
- // 整个协议包长度;
- DWORD dwPackageLen;
- // 消息类型;
- BYTE byMsgType;
- _HEADER_()
- {
- byProtocol = 0xAC;
- dwPackageLen = sizeof(_HEADER_) + sizeof(MSG_INFO);
- byMsgType = 0;
- }
- _HEADER_ &operator=(const _HEADER_ &that)
- {
- if ( this == &that )
- return *this;
-
- byProtocol = that.byProtocol;
- dwPackageLen = that.dwPackageLen;
- byMsgType = that.byMsgType;
- return *this;
- }
- }DATAHEADER, *LPDATAHEADER;
- // 请求包
- typedef struct _PACKAGE_ {
- DATAHEADER header;
- //BYTE buf[4]; // 具体内容(指针地址);
- LPVOID buf;
- }PACKAGE, *LPPACKAGE;
- #pragma pack(pop)
- #pragma endregion 简单通信协议
|