TyphoonServer.h 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. #ifndef __TYPHOON_SERVER_H__
  2. #define __TYPHOON_SERVER_H__
  3. #include "stdint.h"
  4. #include "TyphoonProduct.h"
  5. #ifdef __cplusplus
  6. extern "C"
  7. {
  8. #endif
  9. #ifdef _WIN32
  10. #ifdef TYPHOON_SOCKS_DLL_IMPLEMENT
  11. #define TYPHOON_SERVER_EXTERN __declspec(dllexport)
  12. #else
  13. #ifdef _STATIC_LIB_
  14. #define TYPHOON_SERVER_EXTERN
  15. #else
  16. #define TYPHOON_SERVER_EXTERN __declspec(dllimport)
  17. #endif
  18. #endif
  19. #define TYPHOON_STDCALL __stdcall
  20. #else
  21. #define TYPHOON_SERVER_EXTERN /* nothing */
  22. #define TYPHOON_STDCALL
  23. #endif
  24. typedef void (TYPHOON_STDCALL *TyphoonServerProxy_OnConnected)(void *pHandle, const char *userData, int userDataLen);
  25. typedef void (TYPHOON_STDCALL *TyphoonServerProxy_OnDisConnected)(void *pHandle);
  26. typedef struct TyphoonServerProxyConnectionStatusCb
  27. {
  28. TyphoonServerProxy_OnConnected pfnOnConnected;
  29. TyphoonServerProxy_OnDisConnected pfnOnDisConnected;
  30. }stTyphoonServerProxyConnectionStatusCb;
  31. struct InitServerPrama{
  32. char* listenAddr;
  33. uint32_t listenPort;
  34. uint32_t minSpeed;
  35. uint32_t maxSpeed;
  36. int logId;
  37. char *logPath;
  38. char *licensePath;
  39. char* caPath;
  40. TyphoonAppId_E licenseType;
  41. char* license;
  42. bool bUdpGSO;
  43. int32_t MaxSegmentSize;
  44. bool bSdnOn;
  45. void *rootsData;
  46. int rootsDataLen;
  47. int FecPercent;
  48. bool bCompress;
  49. };
  50. /*
  51. * 初始化代理服务器
  52. * 参数:
  53. * param:输入参数结构体
  54. * 返回值:
  55. * 0成功,非0失败
  56. */
  57. TYPHOON_SERVER_EXTERN int TyphoonProxy_InitServer(InitServerPrama *param);
  58. /*
  59. * 去初始化代理服务器
  60. * 参数:
  61. * 无
  62. * 返回值:
  63. * 0成功,非0失败
  64. */
  65. TYPHOON_SERVER_EXTERN int TyphoonProxy_UninitServer();
  66. TYPHOON_SERVER_EXTERN uint64_t TyphoonProxy_GetNodeId();
  67. TYPHOON_SERVER_EXTERN void * TyphoonProxy_GetServerInstance();
  68. TYPHOON_SERVER_EXTERN void TyphoonProxy_writeLog(const char * fileName,
  69. const char * funcName,
  70. unsigned int line,
  71. unsigned int level,
  72. const char * format,
  73. ...);
  74. TYPHOON_SERVER_EXTERN int TyphoonProxy_RestartSdnRoot(void *rootsData, int rootsDataLen);
  75. TYPHOON_SERVER_EXTERN int TyphoonProxy_CheckSdnIsOnline();
  76. TYPHOON_SERVER_EXTERN void TyphoonServerProxy_SetConnectionStatusCb(stTyphoonServerProxyConnectionStatusCb Cb);
  77. TYPHOON_SERVER_EXTERN stTyphoonServerProxyConnectionStatusCb TyphoonServerProxy_GetConnectionStatusCb();
  78. /*
  79. * 设置 sdn tcp 转发端口
  80. * 参数:
  81. * port:端口号
  82. * 返回值:
  83. * 无
  84. */
  85. TYPHOON_SERVER_EXTERN void TyphoonProxy_SetSDNLocalTcpProxyPort(uint16_t port);
  86. /*
  87. * 设置 stun 服务器地址,必须在服务器初始化之前设置才能生效
  88. * 参数:
  89. * stun_server:stun 服务器地址
  90. * stun_port:stun 端口号
  91. * 返回值:
  92. * 无
  93. */
  94. TYPHOON_SERVER_EXTERN void TyphoonProxy_SetStunServer(const char*stun_server, uint16_t stun_port);
  95. /*
  96. * 设置 tcp 转发服务器地址,必须在服务器初始化之前设置才能生效
  97. * 参数:
  98. * tcp_relay_server:tcp 转发服务器地址
  99. * tcp_relay_port:tcp 转发服务器端口号
  100. * 返回值:
  101. * 无
  102. */
  103. TYPHOON_SERVER_EXTERN void TyphoonProxy_SetTcpRelayServer(const char*tcp_relay_server, uint16_t tcp_relay_port);
  104. /*
  105. * 设置 p2p 使用多服务器ip同时发送
  106. * 参数:
  107. * isMultiSend:1 开启,0 关闭
  108. * 返回值:
  109. * 无
  110. */
  111. TYPHOON_SERVER_EXTERN void TyphoonProxy_SetMultiSendToServer(int isMultiSend);
  112. /*
  113. * 获取SDN Root 服务器地址
  114. * 参数:
  115. * buf: 地址buff
  116. * 返回值:
  117. * 0成功,非0失败
  118. */
  119. TYPHOON_SERVER_EXTERN int TyphoonProxy_GetSDNRelayRootAddress(char *buf);
  120. #ifdef __cplusplus
  121. }
  122. #endif
  123. #endif