📄 znnet.h
字号:
/*=================================================*\
| BREW Net Lib |
|---------------------------------------------------|
| 作者 : Zane |
| 最初版本日期 : 2004 - 3 - 16 |
| 更新日期 : 2004 - 3 - 18 |
| 版本 : 0.01 build 0011 |
|---------------------------------------------------|
| 用法 : |
| |
| 先调用InitNet()初始化,然后用Connect()建立连接。 |
| 连接建立好之后,可以用NetWrite()写数据到连接或者 |
| 用NetRead()从连接读取数据。网络使用完毕后,使用 |
| ReleaseNet()释放。 |
| |
| 注意,在使用每一步之前,应该判断上一步是否成功, |
| 每一步完成后,都将调用回调函数,在回调函数中判断 |
| ZNNET结构的m_LastResult获知这一步是否成功。 |
| 在回调函数被调用前,不要进行别的网络操作,否则将 |
| 出错! |
\*=================================================*/
#ifndef _ZN_NET_HEADER_
#define _ZN_NET_HEADER_
#include "AEEAppGen.h"
#include "AEENet.h"
#define _ZN_MAJOR_VERSION_ 0
#define _ZN_MINOR_VERSION_ 01
#define _ZN_MODIFY_VERSION_ 0011
#define _NET_TIMEOUT_ 30000
typedef enum _ERRCODE
{
ERR_SUCCESS, // 成功
ERR_CREATENET, // 创建网络失败
ERR_CREATESOCKET, // 创建Socket失败
ERR_GETHOSTNAME, // 获取主机名失败
ERR_CONNECT, // 连接失败
ERR_WRITE, // 写数据失败
ERR_READ, // 读数据失败
ERR_TIMEOUT, // 超时错误
ERR_UNKNOWN // 未知错误
} ERRCODE;
typedef struct _ZNNET
{
AEEApplet m_App; // Applet
INetMgr * m_pNetMgr; // 网络管理接口
ISocket * m_pSocket; // Socket接口
AEEDNSResult m_DNSRes; // DNS解析结果
uint16 m_nPort; // 端口(注意,使用的是Little Endian)
ERRCODE m_LastResult; // 上一次动作完成结果
PFNNOTIFY m_pFnResult; // 回调函数指针
void * m_pUserData; // 用于传给回调函数的数据指针
uint16 m_nSentSize; // 已发送大小
uint16 m_nRecvSize; // 已接收大小
void * m_pData; // 数据缓冲指针
uint16 m_nSize; // 数据缓冲大小
uint16 m_nTransSize; // 数据传输大小
AEECallback m_ConnCBFunc; // 连接回调函数
} ZNNET, * PZNNET;
void ZnNet_InitNet(PZNNET pZnNet, AEEApplet App);
void ZnNet_Connect(PZNNET pZnNet, char * szAddress, uint16 nPort,
PFNNOTIFY pFnResCallBack, void * pUser);
void ZnNet_NetErr(PZNNET pZnNet, ERRCODE ErrCode);
void ZnNet_CBGetHostByName(PZNNET pZnNet);
void ZnNet_CBConnect(PZNNET pZnNet, int nErr);
void ZnNet_NetTimeOut(PZNNET pZnNet);
void ZnNet_NetWrite(PZNNET pZnNet, void * pData, uint16 nSize,
PFNNOTIFY pFnResCallBack, void * pUser);
void ZnNet_NetRead(PZNNET pZnNet, void * pBuf, uint16 nSize,
PFNNOTIFY pFnResCallBack, void * pUser);
void ZnNet_CBNetWrite(PZNNET pZnNet);
void ZnNet_CBNetRead(PZNNET pZnNet);
void ZnNet_ReleaseNet(PZNNET pZnNet);
#endif // #ifndef _ZN_NET_HEADER_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -