¶Ô±ÈÐÂÎļþ |
| | |
| | | #ifndef FML_SOCKET_H_ |
| | | #define FML_SOCKET_H_ |
| | | |
| | | #include "HIDO_TypeDef.h" |
| | | #include "HIDO_VLQueue.h" |
| | | |
| | | #define SOCKET_NUM 3 |
| | | |
| | | typedef enum |
| | | { |
| | | SOCKET_TYPE_NONE = 0, |
| | | SOCKET_TYPE_TCP, |
| | | SOCKET_TYPE_UDP, |
| | | } E_SocketType; |
| | | |
| | | typedef enum |
| | | { |
| | | SOCKET_STATE_IDLE = 0, |
| | | SOCKET_STATE_CLOSED, |
| | | SOCKET_STATE_CREATED, |
| | | SOCKET_STATE_CONNECT, |
| | | SOCKET_STATE_CLOSE_BEFORE_CONNECT, |
| | | SOCKET_STATE_CLOSE, |
| | | SOCKET_STATE_CONNECTED, |
| | | SOCKET_STATE_CONNECT_FAILED, |
| | | } E_SocketState; |
| | | |
| | | typedef enum |
| | | { |
| | | SOCKET_EVENT_CONNECT_FAILED, |
| | | SOCKET_EVENT_CONNECTED, |
| | | SOCKET_EVENT_CLOSED, |
| | | SOCKET_EVENT_RECV_DATA, |
| | | } E_SocketEvent; |
| | | |
| | | typedef HIDO_VOID (*FN_SocketEventProc)(HIDO_INT32, E_SocketEvent, HIDO_VOID *); |
| | | |
| | | /******************************************************************************* |
| | | * Function Name : Socket_HaveRecvData |
| | | * Description : éç¥Socketææ°æ®éè¦æ¥æ¶ |
| | | * Input : _i32Sock Socketæè¿°ç¬¦ |
| | | * Output : None |
| | | * Return : HIDO_OK æå, HIDO_ERR 失败 |
| | | * Author : www.hido-studio.com |
| | | * Modified Date: : 2018å¹´5æ17æ¥ |
| | | *******************************************************************************/ |
| | | HIDO_INT32 Socket_HaveRecvData(HIDO_INT32 _i32SockID); |
| | | |
| | | /******************************************************************************* |
| | | * Function Name : Socket_NoRecvData |
| | | * Description : éç¥Socketæ²¡ææ°æ®éè¦æ¥æ¶ |
| | | * Input : _i32Sock Socketæè¿°ç¬¦ |
| | | * Output : None |
| | | * Return : HIDO_OK æå, HIDO_ERR 失败 |
| | | * Author : www.hido-studio.com |
| | | * Modified Date: : 2018å¹´5æ17æ¥ |
| | | *******************************************************************************/ |
| | | HIDO_INT32 Socket_NoRecvData(HIDO_INT32 _i32SockID); |
| | | |
| | | /******************************************************************************* |
| | | * Function Name : Socket_HasRecvData |
| | | * Description : è·åSocketæ¯å¦ææ°æ®éè¦æ¥æ¶ |
| | | * Input : _i32Sock Socketæè¿°ç¬¦ |
| | | * Output : None |
| | | * Return : HIDO_TRUE ææ°æ®éè¦æ¥æ¶, HIDO_FALSE æ²¡ææ°æ®éè¦æ¥æ¶ |
| | | * Author : www.hido-studio.com |
| | | * Modified Date: : 2018å¹´5æ17æ¥ |
| | | *******************************************************************************/ |
| | | HIDO_BOOL Socket_HasRecvData(HIDO_INT32 _i32SockID); |
| | | |
| | | /******************************************************************************* |
| | | * Function Name : Socket_GetSocketRecvQueue |
| | | * Description : è·åSocketæ¥æ¶éå |
| | | * Input : _i32Sock Socketæè¿°ç¬¦ |
| | | * Output : None |
| | | * Return : Socketæ¥æ¶éå |
| | | * Author : www.hido-studio.com |
| | | * Modified Date: : 2018å¹´5æ17æ¥ |
| | | *******************************************************************************/ |
| | | HIDO_VLQStruct *Socket_GetSocketRecvQueue(HIDO_INT32 _i32SockID); |
| | | |
| | | /******************************************************************************* |
| | | * Function Name : Socket_GetSocketSendQueue |
| | | * Description : è·åSocketåééå |
| | | * Input : _i32Sock Socketæè¿°ç¬¦ |
| | | * Output : None |
| | | * Return : Socketåééå |
| | | * Author : www.hido-studio.com |
| | | * Modified Date: : 2018å¹´5æ17æ¥ |
| | | *******************************************************************************/ |
| | | HIDO_VLQStruct *Socket_GetSocketSendQueue(HIDO_INT32 _i32SockID); |
| | | |
| | | /******************************************************************************* |
| | | * Function Name : Socket_GetType |
| | | * Description : è·åSockeç±»å |
| | | * Input : _i32Sock Socketæè¿°ç¬¦ |
| | | * Output : None |
| | | * Return : Sockeç±»å |
| | | * Author : www.hido-studio.com |
| | | * Modified Date: : 2018å¹´5æ17æ¥ |
| | | *******************************************************************************/ |
| | | E_SocketType Socket_GetType(HIDO_INT32 _i32SockID); |
| | | |
| | | /******************************************************************************* |
| | | * Function Name : Socket_GetSocketState |
| | | * Description : è·åSockeå
é¨ç¶æ |
| | | * Input : _i32Sock Socketæè¿°ç¬¦ |
| | | * Output : None |
| | | * Return : Sockeå
é¨ç¶æ |
| | | * Author : www.hido-studio.com |
| | | * Modified Date: : 2018å¹´5æ17æ¥ |
| | | *******************************************************************************/ |
| | | E_SocketState Socket_GetSocketState(HIDO_INT32 _i32SockID); |
| | | |
| | | /******************************************************************************* |
| | | * Function Name : Socket_SetSocketState |
| | | * Description : 设置Sockeå
é¨ç¶æ |
| | | * Input : _i32Sock Socketæè¿°ç¬¦ |
| | | * : _eState Sockeå
é¨ç¶æ |
| | | * Output : None |
| | | * Return : HIDO_OK æå, HIDO_ERR 失败 |
| | | * Author : www.hido-studio.com |
| | | * Modified Date: : 2018å¹´5æ17æ¥ |
| | | *******************************************************************************/ |
| | | HIDO_INT32 Socket_SetSocketState(HIDO_INT32 _i32SockID, E_SocketState _eState); |
| | | |
| | | /******************************************************************************* |
| | | * Function Name : Socket_GetRemoteAddr |
| | | * Description : è·åSocketè¿ç¨å°å |
| | | * Input : _i32Sock Socketæè¿°ç¬¦ |
| | | * Output : None |
| | | * Return : è¿ç¨å°å |
| | | * Author : www.hido-studio.com |
| | | * Modified Date: : 2018å¹´5æ17æ¥ |
| | | *******************************************************************************/ |
| | | HIDO_CHAR *Socket_GetRemoteAddr(HIDO_INT32 _i32SockID); |
| | | |
| | | /******************************************************************************* |
| | | * Function Name : Socket_GetRemotePort |
| | | * Description : è·åSocketè¿ç¨ç«¯å£ |
| | | * Input : _i32Sock Socketæè¿°ç¬¦ |
| | | * Output : None |
| | | * Return : è¿ç¨ç«¯å£ |
| | | * Author : www.hido-studio.com |
| | | * Modified Date: : 2018å¹´5æ17æ¥ |
| | | *******************************************************************************/ |
| | | HIDO_UINT16 Socket_GetRemotePort(HIDO_INT32 _i32SockID); |
| | | |
| | | /******************************************************************************* |
| | | * Function Name : Socket_RecvAll |
| | | * Description : å
¨é¨Socketéè¦æ¥æ¶æ°æ®çéç¥ |
| | | * Input : None |
| | | * Output : None |
| | | * Return : HIDO_OK æå, HIDO_ERR 失败 |
| | | * Author : www.hido-studio.com |
| | | * Modified Date: : 2018å¹´5æ17æ¥ |
| | | *******************************************************************************/ |
| | | HIDO_INT32 Socket_RecvAll(void); |
| | | |
| | | /******************************************************************************* |
| | | * Function Name : Socket_ClosedAll |
| | | * Description : å
¨é¨Socket被æå¼çéç¥ |
| | | * Input : None |
| | | * Output : None |
| | | * Return : HIDO_OK æå, HIDO_ERR 失败 |
| | | * Author : www.hido-studio.com |
| | | * Modified Date: : 2018å¹´5æ17æ¥ |
| | | *******************************************************************************/ |
| | | HIDO_INT32 Socket_ClosedAll(void); |
| | | |
| | | /******************************************************************************* |
| | | * Function Name : Socket_OnConnectFailed |
| | | * Description : Socketè¿æ¥å¤±è´¥æ¶çå
é¨éç¥ |
| | | * Input : _i32Sock Socketæè¿°ç¬¦ |
| | | * Output : None |
| | | * Return : HIDO_OK æå, HIDO_ERR 失败 |
| | | * Author : www.hido-studio.com |
| | | * Modified Date: : 2018å¹´5æ17æ¥ |
| | | *******************************************************************************/ |
| | | HIDO_INT32 Socket_OnConnectFailed(HIDO_INT32 _i32SockID); |
| | | |
| | | /******************************************************************************* |
| | | * Function Name : Socket_OnConnected |
| | | * Description : Socketè¿æ¥æåæ¶çå
é¨éç¥ |
| | | * Input : _i32Sock Socketæè¿°ç¬¦ |
| | | * Output : None |
| | | * Return : HIDO_OK æå, HIDO_ERR 失败 |
| | | * Author : www.hido-studio.com |
| | | * Modified Date: : 2018å¹´5æ17æ¥ |
| | | *******************************************************************************/ |
| | | HIDO_INT32 Socket_OnConnected(HIDO_INT32 _i32SockID); |
| | | |
| | | /******************************************************************************* |
| | | * Function Name : Socket_OnClosed |
| | | * Description : Socket被å
³éæ¶çå
é¨éç¥ |
| | | * Input : _i32Sock Socketæè¿°ç¬¦ |
| | | * Output : None |
| | | * Return : HIDO_OK æå, HIDO_ERR 失败 |
| | | * Author : www.hido-studio.com |
| | | * Modified Date: : 2018å¹´5æ17æ¥ |
| | | *******************************************************************************/ |
| | | HIDO_INT32 Socket_OnClosed(HIDO_INT32 _i32SockID); |
| | | |
| | | /******************************************************************************* |
| | | * Function Name : Socket_RecvData |
| | | * Description : Socketæ¶å°æ°æ®æ¶çå
é¨å¤ç |
| | | * Input : _i32Sock Socketæè¿°ç¬¦ |
| | | * : _pu8Data æ¶å°çæ°æ® |
| | | * : _u32Len æ¶å°çæ°æ®é¿åº¦ |
| | | * Output : None |
| | | * Return : HIDO_OK æå, HIDO_ERR 失败 |
| | | * Author : www.hido-studio.com |
| | | * Modified Date: : 2018å¹´5æ17æ¥ |
| | | *******************************************************************************/ |
| | | HIDO_INT32 Socket_RecvData(HIDO_INT32 _i32SockID, HIDO_UINT8 *_pu8Data, HIDO_UINT32 _u32Len); |
| | | |
| | | /******************************************************************************* |
| | | * Function Name : Socket_OnRecv |
| | | * Description : Socketæ¶å°æ°æ®æ¶çå
é¨éç¥ |
| | | * Input : _i32Sock Socketæè¿°ç¬¦ |
| | | * Output : None |
| | | * Return : HIDO_OK æå, HIDO_ERR 失败 |
| | | * Author : www.hido-studio.com |
| | | * Modified Date: : 2018å¹´5æ17æ¥ |
| | | *******************************************************************************/ |
| | | HIDO_INT32 Socket_OnRecv(HIDO_INT32 _i32SockID); |
| | | |
| | | /******************************************************************************* |
| | | * Function Name : Socket_Create |
| | | * Description : Socketå建 |
| | | * Input : _eSocketType Socketç±»å |
| | | * : _fnEventProc Socketäºä»¶å¤ç彿° |
| | | * : _pArg åæ° |
| | | * Output : _pi32SockID Socketæè¿°ç¬¦ |
| | | * Return : HIDO_OK æå, HIDO_ERR 失败 |
| | | * Author : www.hido-studio.com |
| | | * Modified Date: : 2018å¹´5æ17æ¥ |
| | | *******************************************************************************/ |
| | | HIDO_INT32 Socket_Create(HIDO_INT32 *_pi32SockID, E_SocketType _eSocketType, FN_SocketEventProc _fnEventProc, HIDO_VOID *_pArg); |
| | | |
| | | /******************************************************************************* |
| | | * Function Name : Socket_Connect |
| | | * Description : Socketè¿æ¥ |
| | | * Input : _i32Sock Socketæè¿°ç¬¦ |
| | | * : _pcRemoteAddr ç®æ å°å |
| | | * : _u16RemotePort ç®æ ç«¯å£ |
| | | * Output : None |
| | | * Return : HIDO_OK æå, HIDO_ERR 失败 |
| | | * Author : www.hido-studio.com |
| | | * Modified Date: : 2018å¹´5æ17æ¥ |
| | | *******************************************************************************/ |
| | | HIDO_INT32 Socket_Connect(HIDO_INT32 _i32SockID, HIDO_CHAR *_pcRemoteAddr, HIDO_UINT16 _u16RemotePort); |
| | | |
| | | /******************************************************************************* |
| | | * Function Name : Socket_Close |
| | | * Description : å
³éä¸ä¸ªSocket |
| | | * Input : _i32Sock Socketæè¿°ç¬¦ |
| | | * Output : None |
| | | * Return : HIDO_OK æå, HIDO_ERR 失败 |
| | | * Author : www.hido-studio.com |
| | | * Modified Date: : 2018å¹´5æ17æ¥ |
| | | *******************************************************************************/ |
| | | HIDO_INT32 Socket_Close(HIDO_INT32 _i32SockID); |
| | | |
| | | /******************************************************************************* |
| | | * Function Name : Socket_Destroy |
| | | * Description : 鿝ä¸ä¸ªSocket |
| | | * Input : _i32Sock Socketæè¿°ç¬¦ |
| | | * Output : None |
| | | * Return : HIDO_OK æå, HIDO_ERR 失败 |
| | | * Author : www.hido-studio.com |
| | | * Modified Date: : 2018å¹´5æ17æ¥ |
| | | *******************************************************************************/ |
| | | HIDO_INT32 Socket_Destroy(HIDO_INT32 _i32SockID); |
| | | |
| | | /******************************************************************************* |
| | | * Function Name : Socket_IsSendQueueEmpty |
| | | * Description : 夿åéé忝å¦ä¸ºç©º |
| | | * Input : _i32Sock Socketæè¿°ç¬¦ |
| | | * Output : None |
| | | * Return : HIDO_TRUE åééå为空, HIDO_FALSE åééåä¸ä¸ºç©º |
| | | * Author : www.hido-studio.com |
| | | * Modified Date: : 2018å¹´5æ17æ¥ |
| | | *******************************************************************************/ |
| | | HIDO_BOOL Socket_IsSendQueueEmpty(HIDO_INT32 _i32SockID); |
| | | |
| | | /******************************************************************************* |
| | | * Function Name : Socket_Send |
| | | * Description : Socketåéæ°æ® |
| | | * Input : _i32Sock Socketæè¿°ç¬¦ |
| | | * : _pu8Data åéçæ°æ® |
| | | * : _u32DataLen åéçæ°æ®é¿åº¦ |
| | | * Output : None |
| | | * Return : HIDO_OK æå, HIDO_ERR 失败 |
| | | * Author : www.hido-studio.com |
| | | * Modified Date: : 2018å¹´5æ17æ¥ |
| | | *******************************************************************************/ |
| | | HIDO_INT32 Socket_Send(HIDO_INT32 _i32SockID, HIDO_UINT8 *_pu8Data, HIDO_UINT32 _u32DataLen); |
| | | |
| | | /******************************************************************************* |
| | | * Function Name : Socket_IsClosed |
| | | * Description : æ£æ¥Socketæ¯å¦å·²æå¼ |
| | | * Input : _i32Sock Socketæè¿°ç¬¦ |
| | | * Output : _pbResult æå¼ç¶æ HIDO_TRUE å·²æå¼ HIDO_FALSE æªæå¼ |
| | | * Return : HIDO_OK æå, HIDO_ERR 失败 |
| | | * Author : www.hido-studio.com |
| | | * Modified Date: : 2018å¹´5æ17æ¥ |
| | | *******************************************************************************/ |
| | | HIDO_INT32 Socket_IsClosed(HIDO_INT32 _i32SockID, HIDO_BOOL *_pbResult); |
| | | |
| | | /******************************************************************************* |
| | | * Function Name : Socket_IsConnected |
| | | * Description : æ£æ¥Socketæ¯å¦å·²è¿æ¥ |
| | | * Input : _i32Sock Socketæè¿°ç¬¦ |
| | | * Output : _pbResult è¿æ¥ç¶æ HIDO_TRUE å·²è¿æ¥ HIDO_FALSE æªè¿æ¥ |
| | | * Return : HIDO_OK æå, HIDO_ERR 失败 |
| | | * Author : www.hido-studio.com |
| | | * Modified Date: : 2018å¹´5æ17æ¥ |
| | | *******************************************************************************/ |
| | | HIDO_INT32 Socket_IsConnected(HIDO_INT32 _i32SockID, HIDO_BOOL *_pbResult); |
| | | |
| | | /******************************************************************************* |
| | | * Function Name : Socket_UseHeartbeat |
| | | *******************************************************************************/ |
| | | HIDO_BOOL Socket_UseHeartbeat(HIDO_INT32 _i32SockID); |
| | | |
| | | /******************************************************************************* |
| | | * Function Name : Socket_HeartbeatConfig |
| | | *******************************************************************************/ |
| | | HIDO_INT32 Socket_HeartbeatConfig(HIDO_INT32 _i32SockID, HIDO_UINT8 *_pu8Data, HIDO_UINT32 _u32Len, HIDO_UINT32 _u32HeartbeatFreq); |
| | | |
| | | /******************************************************************************* |
| | | * Function Name : Socket_GetHeartbeatFreq |
| | | *******************************************************************************/ |
| | | HIDO_UINT32 Socket_GetHeartbeatFreq(HIDO_INT32 _i32SockID); |
| | | |
| | | /******************************************************************************* |
| | | * Function Name : Socket_GetHeartbeatFreq |
| | | *******************************************************************************/ |
| | | HIDO_CHAR *Socket_GetHeartbeatData(HIDO_INT32 _i32SockID); |
| | | |
| | | /******************************************************************************* |
| | | * Function Name : Socket_Recv |
| | | * Description : ä»Socketæ¥æ¶éåä¸è¯»åæ°æ® |
| | | * Input : _i32Sock Socketæè¿°ç¬¦ |
| | | * : _u32RecvBuffSize è¯»åæ°æ®çç¼åå°å |
| | | * Output : _pu8RecvBuff è¯»åæ°æ®çç¼å |
| | | * : _pu32RecvLen æ°æ®é¿åº¦ |
| | | * Return : HIDO_OK æå, HIDO_ERR 失败 |
| | | * Author : www.hido-studio.com |
| | | * Modified Date: : 2018å¹´5æ17æ¥ |
| | | *******************************************************************************/ |
| | | HIDO_INT32 Socket_Recv(HIDO_INT32 _i32SockID, HIDO_UINT8 *_pu8RecvBuff, HIDO_UINT32 _u32RecvBuffSize, HIDO_UINT32 *_pu32RecvLen); |
| | | |
| | | #endif /* FML_GPRS_SOCKET_SOCKET_H_ */ |