⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nq_soc_core.h

📁 mtk socket编程
💻 H
字号:
#ifndef __NQ_HAPPY_NW_CORE_H__
#define __NQ_HAPPY_NW_CORE_H__

#define NQ_ZH_SOC_MAX 1 //用户可创建的socket的最大个数,目前支持的最大值为5

#define NQ_ZH_SOC_TIMER_OUT 60000  //网络操作超时

#define NQ_ZH_SUCCESS 0
#define NQ_ZH_FAILED -1
#define NQ_ZH_IGNORE 1
#define NQ_ZH_WAITING 2 //异步模式

typedef void (*NQ_zh_core_soc_notify_FuncPtr) (kal_int8 socket_index, kal_int32 error_code, kal_int32 sock_event);

typedef void (*NQ_zh_core_PsHttpCallBack)(kal_int32 result);
typedef kal_int32 (*NQ_zh_core_recv_is_finished_Ptr)(kal_int8 *recv_buffer,kal_int32 recv_len, kal_int32 *wap_flag);


typedef struct
{
	NQ_zh_core_soc_notify_FuncPtr connect_notify;
	NQ_zh_core_soc_notify_FuncPtr accept_notify;
	NQ_zh_core_soc_notify_FuncPtr write_notify;
	NQ_zh_core_soc_notify_FuncPtr read_notify;
	NQ_zh_core_soc_notify_FuncPtr close_notify;
	NQ_zh_core_soc_notify_FuncPtr error_notify;
	NQ_zh_PsFuncPtr deactive_handler;
}nq_zh_core_soc_notify_handler;

typedef struct
{
	kal_int8 socketId;
	kal_int8 socStat;
	kal_uint16 socket_timer;

	kal_int8* recv_buf;
	kal_int8* send_buf;
	kal_int32 recv_len_max;
	kal_int32 send_len;
	kal_int32 send_offset;
	kal_int32 recv_offset;

	nq_zh_core_soc_notify_handler notify_handler;
	NQ_zh_core_recv_is_finished_Ptr isFinished;
	NQ_zh_core_PsHttpCallBack userCallback;
}nq_zh_soc_context;

typedef enum
{
	NQ_ZH_SOC_STATE_CLOSE,
	NQ_ZH_SOC_STATE_IDLE,
	NQ_ZH_SOC_STATE_CONNECTING,
	NQ_ZH_SOC_STATE_CONNECTED,
	NQ_ZH_SOC_STATE_SENDING,
	NQ_ZH_SOC_STATE_SENT,
	NQ_ZH_SOC_STATE_RECVING,
	NQ_ZH_SOC_STATE_RECVED,
	NQ_ZH_SOC_STATE_ERR
}NQ_ZH_SOC_STAT_enum;

typedef enum
{
	NQ_ZH_SOC_NOREAD,
	NQ_ZH_SOC_NOWRITE,
	NQ_ZH_SOC_READABLE,
	NQ_ZH_SOC_WRITEABLE
}NQ_ZH_SOC_RW_STAT;

typedef enum 
{
	NQ_ZH_SOCKET_BLOCK,          //阻塞方式(同步方式)
	NQ_ZH_SOCKET_NONBLOCK       //非阻塞方式(异步方式)
}NQ_ZH_COMM_STYLE;


extern kal_int8 nq_zh_core_createSocket(kal_int8 type);
extern kal_int8 nq_zh_core_connect(kal_int8 socket_index, kal_int8 type);
extern kal_int32 nq_zh_core_close(kal_int8 socket_index);
extern kal_int32 nq_zh_core_recv (kal_int8 socket_index, kal_uint8 *buf, kal_int32 len, kal_int32 *recv_len);
extern kal_int32 nq_zh_core_send(kal_int8 socket_index, kal_uint8 *buf, kal_int32 len, kal_int32 *sent_len);
extern kal_int8 nq_zh_core_send_req(kal_int8 *sendbuf, kal_int32 sendlen, 
	kal_int8 *recvbuf, kal_int32 max_recvlen, 
	NQ_zh_core_recv_is_finished_Ptr isFinished, NQ_zh_core_PsHttpCallBack usercallback);

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -