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

📄 jnetwork.h

📁 BREW BREWwinz Application development APIs
💻 H
字号:
// JNetwork.h: interface for the CJNetwork class.
//
// BlueWinZ Game Engine For BREW.
// Version: 1.0a
// (c)2003 anecia all rights reserved
//////////////////////////////////////////////////////////////////////

#ifndef _JNETWORK_HEADER_INCLUDED
#define _JNETWORK_HEADER_INCLUDED


#pragma once

#include "AEE.h"
#include "AEEShell.h"
#include "AEENet.h"
#include "IEB_KTF_BillCom.h"
#include "jobject.h"

//////////////////////////////////////////
#ifdef AEE_SIMULATOR
#define KTF_BILLCOM	0
#else
#define KTF_BILLCOM	1
#endif
//////////////////////////////////////////

#define LIMITED_IDLE_TIME	15 // timeout

#define ISDIGIT(c)  ( (unsigned) ((c) - '0') < 10)
#define ISALPHA(c)  ( (unsigned) ( ((c)|32) - 'a') < 26 )
#define ISALNUM(c)  ( ISDIGIT(c) || ISALPHA(c) )

//class CMyApp;
class CJNetwork : public CJObject
{
public:
	CJNetwork(IShell* m_lpIShell);
	virtual ~CJNetwork(void);

	BOOL OpenSocket(BOOL bCreateBillcomMgr = FALSE, NetSocket socketType = AEE_SOCK_STREAM);
	void CloseSocket();
	BOOL Connect(char* szIP, uint16 nPort);
	void ConnectByHostname(char* szHostname, uint16 nPort);
	BOOL Connect(INAddr addr, uint16 nPort);
	BOOL ConnectByGotHost(uint16 nPort);
	void ReleaseSocketAndNetMgr();
	INAddr ConvertToINAddr(char *psz);
	BOOL GetHostByName(char* szHostName, INAddr& oldAddr);
	BOOL IsSetCBF();
	BOOL IsGotHost();
	BOOL IsTryGetHost();
	BOOL IsConnected();
	int GetErrorCode();
	void ClearErrorCode();
	int Run(DWORD dwDt);
	//NetState GetNetStatus();
	char* SetBuffer(DWORD dwSize);
	char* GetBuffer();
	void FreeBuffer();
	int ReadMacsData(BOOL bDisconnectAfterRead);
	int ReadData(BOOL bDisconnectAfterRead);
	int SendData(BOOL bFreeDataAfterSend, BOOL bDisconnectAfterSend);
	void SetDisconnectAfterSendOrRead(DWORD dwSecLater = 3);
	BOOL IsBCEN();

	//int ReadData(char* lpData, DWORD dwLen);
	//int SendData(char* lpData, DWORD dwLen);
	char* BuildPacket(unsigned char byIndex, DWORD dwSize, char*& lpOut);

	static void cbfGetHostByNameCB(CJNetwork* lpThis);
	static void cbfCommonConnect(CJNetwork* lpThis, int nError);
	static void cbfReadMacsData(CJNetwork* lpThis); // For billcom
	static void cbfReadData(CJNetwork* lpThis);
	static void cbfSendData(CJNetwork* lpThis);
	static void cbfDumpReceivedData(CJNetwork* lpThis);
#ifdef AEE_SIMULATOR
	static void cbfBillComConnect(CJNetwork* lpThis, int nError);
#endif

public:
	enum
	{
		NET_NOTHING = 0,
		NET_BCEN = 10,
		NET_CONNECTING = 20,
		NET_TRYGETHOST,
		NET_SEND,
		NET_READ
	} NET_MODE;

	enum
	{
		NERR_SEND = -1,
		NERR_READ = -2
	} NET_ERROR;

	char		m_chNetMode;
	char		m_chUserMode;
	IShell*		m_lpIShell;
    INetMgr*	m_lpINetMgr;
	ISocket*	m_lpISocket;
	int			nRecvSize; 

	IEB_KTF_Com*	m_lpIBillComMgr;

	AEEDNSResult m_dnsResult;
	AEECallback  m_cbkLookup;
	INAddr       m_addrsLookup; // IP address in network byte order
	int			 m_nPort;

private:
	int			m_nError;
	BOOL		m_bSetCBFunc;
	BOOL		m_bGotHost;
	BOOL		m_bTryGetHost;
	BOOL		m_bConnected;
	BOOL		m_bGetHostAndConnect;
	char*		m_lpSetBuffer;
	char*		m_lpWorkBuffer;
	DWORD		m_dwDataSize;
	DWORD		m_dwWorkSize;
	DWORD		m_dwSetSize;
	BOOL		m_bSetDisconnect;
	BOOL		m_bFreeData;
	BOOL		m_bBCEN;
	DWORD		m_dwDisconnectCount;
	DWORD		m_dwLimitedIdleTile;
};

#endif // _JNETWORK_HEADER_INCLUDED

⌨️ 快捷键说明

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