data_def.h 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. //data_def.h
  2. ///////////////////////////////////////////////////////////////////////////////
  3. ///////////////////////////////////////////////////////////////////////////////
  4. #ifndef _DATA_DEF_H_
  5. #define _DATA_DEF_H_
  6. ///////////////////////////////////////////////////////////////////////////////
  7. #if defined(__cplusplus)
  8. extern "C" {
  9. #endif //#if
  10. ///////////////////////////////////////////////////////////////////////////////
  11. typedef int TransportBool;
  12. typedef int TransportStatus;
  13. typedef char TransportData;
  14. typedef unsigned long TransportLength;
  15. typedef int TransportError;
  16. typedef unsigned long ULong;
  17. typedef unsigned short UShort;
  18. typedef unsigned long TransportHandle;
  19. ///////////////////////////////////////////////////////////////////////////////
  20. typedef enum _tagTransportBool
  21. {
  22. TRANSPORT_FALSE = 0,
  23. TRANSPORT_TRUE = 1
  24. } ETransportBool;
  25. //传输状态
  26. typedef enum _tagTransportStatus
  27. {
  28. TRANSPORT_UNKNOWN = -2,
  29. TRANSPORT_ERROR = -1,
  30. TRANSPORT_OK = 0,
  31. } ETransportStatus;
  32. //TPC类型
  33. typedef enum _tagTransportType
  34. {
  35. Transport_Undefined,
  36. Transport_Client,
  37. Transport_Server
  38. } ETransportType;
  39. //传输事件
  40. typedef enum _tagTransportEvents
  41. {
  42. Transport_ReadEv,
  43. Transport_WriteEv,
  44. Transport_AcceptEv,
  45. Transport_ConnectEv,
  46. Transport_CloseEv
  47. } ETransportEvent;
  48. //传输地址
  49. typedef struct _tagTransportAddress
  50. {
  51. ULong ip; /* 4 byte IP address, network format */
  52. UShort port; /* 2 byte port number, host format */
  53. } TransportAddress;
  54. /*协议头的数据结构*/
  55. typedef struct tagMessageHeader
  56. {
  57. BYTE byVersion; /*版本号说明版本的信息*/
  58. BYTE byHeaderFlag; /*标识符用来检测消息的正确性*/
  59. WORD wHeaderFlag; /*标识符用来检测消息的正确性*/
  60. WORD wMessageId; /*消息ID指明该消息的用途*/
  61. WORD wMessageSubId; /*子消息ID作为第2层消息的用途*/
  62. DWORD dwDataLen; /*数据长度是指除了协议头之外的消息长度*/
  63. WORD wCheckSum; /*校验和用来校验消息是否正确,暂时不用(填0)*/
  64. WORD wReserve; /*保留字暂时不用(填0)*/
  65. } TMessageHeader;
  66. /*协议头的标识符*/
  67. #define MESSAGE_HEADER_FLAG (0xCDAB)
  68. /*协议头的长度*/
  69. #define MESSAGE_HEADER_LEN ( (sizeof(TMessageHeader)) )
  70. /*/////////////////////////////////////////////////////////////////////////*/
  71. #define SERVER_PORT (5678)
  72. ///////////////////////////////////////////////////////////////////////////////
  73. ////////////////////////define callback functions//////////////////////////////
  74. /*net event callback*/
  75. typedef void (*LPTRANSPORT_EVENT)(
  76. IN SOCKET hSocket, IN ETransportEvent eEvent,
  77. IN void *pDataBuf, IN unsigned long nDataLen,
  78. IN int nError, IN void *pContext);
  79. /*obtain packet size from packet header callback*/
  80. typedef void (*LPTRANSPORT_GETDATABUFLEN)(
  81. IN SOCKET hSocket, IN void *pHeaderBuf,
  82. OUT unsigned long *nDataLen);
  83. ///////////////////////////////////////////////////////////////////////////////
  84. #if defined(__cplusplus)
  85. }
  86. #endif
  87. ///////////////////////////////////////////////////////////////////////////////
  88. #endif /*_DATA_DEF_H_*/