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

📄 connectinfo.h

📁 一个与金融方面有关的问题
💻 H
字号:
#pragma once
//定义
#define	 DATA_BUFSIZE 256
#define  RECV 0
#define  SEND 1
//扩展OVERLAPPEDEX结构
//以更好的记录数据
typedef struct OverlappedEX
{
	OVERLAPPED				Overlapped;
	WSABUF					DataBuf;
	int						nOvFlag;//重叠类型
}OVERLAPPEDEX,*LPOVERLAPPEDEX;
//定义用来加密解密的key结构
//本结构体现加密体系
//	server		  client
//	recv-----------send
//	send-----------recv
typedef struct CodeKey 
{
   	BYTE SendKey[8];
	BYTE RecvKey[8];
}CODEKEY,*LPCODEKEY;

typedef CTypedPtrList<CPtrList, OVERLAPPEDEX*> COverlappedExList;
//定义在本连接上投递的缓冲区列表

class CConnectInfo
{
public:
	SOCKET sock;
	sockaddr_in netaddr;
	//加密解密KEY
    CODEKEY Key;
	int keyNum;
	//投递操作链表
	COverlappedExList OlList;
	//CBuffList BuffList;//缓冲区链表
public:	 
	//填充第一个KEY
	void FirstFillinKey(BYTE *key);
	//加密数据包
	void EnCodeFlow(BYTE *key, BYTE *vkey, BYTE *DataPack, BYTE *HandledPack, int len, BYTE flag);
	//解密数据包
	BYTE DeCodeFlow(BYTE *key, BYTE *vkey, BYTE *DataPack, BYTE *HandlePack, int len);
	 //解密KEY
	void DeCodeKey(BYTE *key); 
	//加密KEY 
	void EnCodeKey(BYTE *key);	
	//加密金钱
	void EnCodeMoney(BYTE *key, BYTE *vkey, BYTE *DataPack, BYTE *HandledPack);
	//解密金钱
	void DeCodeMoney(BYTE *key, BYTE *vkey, BYTE *DataPack, BYTE *HandledPack);
protected:
	void ProduceNewKey(const BYTE *key, BYTE *vkey);
	void position(const BYTE *key, BYTE *pos, int len);
	void ReWriteBag(const BYTE *pos, const BYTE *vkey, const BYTE *inChar, BYTE * outChar, int len, BYTE flag);
	void ReduceBag(const BYTE *pos, BYTE *outChar, BYTE *vkey, BYTE *inChar, int len);
	void EnCode(const BYTE *key, BYTE *inChar, int len);
	void DeCode(const BYTE *key, BYTE *inChar, int len);
	void FillinKey(BYTE *key, const BYTE *vkey);
protected:
	//分配接收缓冲区
	LPOVERLAPPEDEX AllocRecvBuff(int len);
	//分配发送缓冲区
	LPOVERLAPPEDEX AllocSendBuff(const char packet[],int len);
	//投递接收IO
	void postRecv(LPOVERLAPPEDEX pOverlappedEx);
	void postSend(LPOVERLAPPEDEX pOverlappedEx);
	//投递操作添加到列表
	void AddToList(LPOVERLAPPEDEX pOverlappedEx);
	
public:
	CConnectInfo(void);
	~CConnectInfo(void); 
	//从链表中删除操作相关
	void DelAllFromList();
	//处理接收到的封包
	int handleRecvPacket(LPOVERLAPPEDEX pOl,int len);
	//发送密钥
    void sendKey(BYTE *Key);
	//处理登陆
	void handleLoginPacket(BYTE* pPack,LPOVERLAPPEDEX pOl,int len);
	//处理注册
	void handleRegPacket(BYTE* pPacke,LPOVERLAPPEDEX pOl,int len);
	//存款
	void handleIncomePacket(BYTE* pPack,LPOVERLAPPEDEX pOl,int len);
	//取款
	void handlePayoutPacket(BYTE* pPacke,LPOVERLAPPEDEX pOl,int len);
	//转帐
	void handleTransferPacket(BYTE* pPacke,LPOVERLAPPEDEX pOl,int len);
	//现实
	void handleShowUserInfo(BYTE *pPack,LPOVERLAPPEDEX pOl,int len);
	//退出系统
	void exitsys(BYTE *pPack,LPOVERLAPPEDEX pOl,int len);
	//查询余额
	void handleFindBalance(BYTE *pPack,LPOVERLAPPEDEX pOl,int len);
	//修改密码
	void handleNotifyPassword(BYTE *pPack,LPOVERLAPPEDEX pOl,int len);
	//void sendMoney(BYTE *Menoy);
};

⌨️ 快捷键说明

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