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

📄 znnet.h

📁 基于BREW 2.0 开发的冒险类手机游戏
💻 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 + -