📄 jnetwork.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 + -