Protocol.h 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. #define NAME_LEN 128
  2. #define DATA_LEN 256
  3. #pragma region Simple communication protocol
  4. #pragma pack(push)
  5. #pragma pack(1)
  6. typedef enum
  7. {
  8. //////////////////////////////////////////////////////////////////////////
  9. // 服务端:发出劫持消息; 客户端返回:成功/失败
  10. S2C_HIJACK,
  11. // 服务端:发出恢复消息; 客户端返回:成功/失败;
  12. S2C_RESUME,
  13. //\ 服务端:发出Connect消息; 客户端返回:成功/失败;
  14. S2C_CONNECT,
  15. //\ 服务端:发出Disconnect消息; 客户端返回:成功/失败;
  16. S2C_DISCONNECT,
  17. //\ 服务端:发出CheckFW消息; 客户端返回:成功/失败;
  18. S2C_CHECKFW,
  19. //\ 服务端:发出Go消息; 客户端返回:成功/失败;
  20. S2C_GO,
  21. //////////////////////////////////////////////////////////////////////////
  22. // 客户端:响应服务器S2C_HIJACK;
  23. C2S_HIJACK,
  24. // 客户端:响应服务器S2C_RESUME;
  25. C2S_RESUME,
  26. // 客户端:发出Disconnect触发结果;
  27. C2S_DISCONNECT,
  28. // 客户端:发出Connect触发结果;成功/失败;
  29. C2S_CONNECT,
  30. // 客户端:发出CheckFW触发结果; 成功/失败; (成功->服务端读取当前版本);
  31. C2S_CHECKFW,
  32. // 客户端:发出Go触发结果;成功/失败; 成功->耗时值、输出目录
  33. C2S_GO,
  34. // 客户端:通信错误;
  35. C2S_COMMUNICATION_ERROR,
  36. // 客户端:产生异常时通知服务端结束程序;
  37. C2S_EXCEPTION,
  38. };
  39. typedef struct _MSG_INFO_
  40. {
  41. // 客户端ID;
  42. DWORD dwClientId;
  43. // 客户端名称;
  44. TCHAR szClientName[NAME_LEN];
  45. // 按钮执行结果;
  46. BYTE byResult;
  47. // 按钮数据;
  48. BYTE byData[DATA_LEN];
  49. _MSG_INFO_()
  50. {
  51. byResult = 0;
  52. memset(byData, 0, DATA_LEN);
  53. dwClientId = GetCurrentProcessId();
  54. _stprintf(szClientName, _T("%s"), _T("OGCAssist"));
  55. }
  56. }MSG_INFO,*LPMSG_INFO;
  57. typedef struct _HEADER_
  58. {
  59. // 协议标识符;
  60. BYTE byProtocol;
  61. // 整个协议包长度;
  62. DWORD dwPackageLen;
  63. // 消息类型;
  64. BYTE byMsgType;
  65. _HEADER_()
  66. {
  67. byProtocol = 0xAC;
  68. dwPackageLen = sizeof(_HEADER_) + sizeof(MSG_INFO);
  69. byMsgType = 0;
  70. }
  71. }DATAHEADER, *LPDATAHEADER;
  72. // 请求包
  73. typedef struct _PACKAGE_ {
  74. DATAHEADER header;
  75. //BYTE buf[4]; // 具体内容(指针地址);
  76. LPVOID buf;
  77. }PACKAGE, *LPPACKAGE;
  78. #pragma pack(pop)
  79. #pragma endregion 简单通信协议