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