1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- #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;
- memset(byData, 0, DATA_LEN);
- dwClientId = GetCurrentProcessId();
- _stprintf(szClientName, _T("%s"), _T("OGCAssist"));
- }
- }MSG_INFO,*LPMSG_INFO;
- typedef struct _HEADER_
- {
- // 协议标识符;
- BYTE byProtocol;
- // 整个协议包长度;
- DWORD dwPackageLen;
- // 消息类型;
- BYTE byMsgType;
- _HEADER_()
- {
- byProtocol = 0xAC;
- dwPackageLen = sizeof(_HEADER_) + sizeof(MSG_INFO);
- byMsgType = 0;
- }
- }DATAHEADER, *LPDATAHEADER;
- // 请求包
- typedef struct _PACKAGE_ {
- DATAHEADER header;
- //BYTE buf[4]; // 具体内容(指针地址);
- LPVOID buf;
- }PACKAGE, *LPPACKAGE;
- #pragma pack(pop)
- #pragma endregion 简单通信协议
|