Files

65 lines
1.1 KiB
C
Raw Permalink Normal View History

2026-03-03 13:56:44 +08:00
#ifndef __OEVERLAPPED_H__
#define __OEVERLAPPED_H__
#define IoSend 1 // <20><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
#define IoRecv 2 // <20><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
#define IoExit 3 // <20>˳<EFBFBD>ϵͳ
#define MAX_PACKAGE_SIZE 2048 // <20><><EFBFBD>η<EFBFBD><CEB7>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD>ܰ<EFBFBD><DCB0>Ĵ<EFBFBD>С
#define MAX_USER_PACK_SIZE 65534 // <20>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>
struct stOverlappedBase : public OVERLAPPED
{
UINT IoMode;
WORD nClient;
WSABUF WsaBuf;
stOverlappedBase()
{
// init OVERLAPPED
Internal=0;
InternalHigh=0;
Offset=0;
OffsetHigh=0;
hEvent=0;
// init SOverlapped
IoMode=0;
nClient=0xFFFF;
WsaBuf.buf=NULL;
WsaBuf.len=0;
}
};
struct stSendOverlapped : public stOverlappedBase
{
char *pBuffer; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵĻ<DDB5><C4BB><EFBFBD>ָ<EFBFBD><D6B8>
DWORD dwSentBytes; // <20>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD>͵<EFBFBD><CDB5>ֽ<EFBFBD><D6BD><EFBFBD>
DWORD dwTotalBytes; // <20><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD>ܵ<EFBFBD><DCB5>ֽ<EFBFBD><D6BD><EFBFBD>
stSendOverlapped()
{
IoMode = IoSend;
pBuffer = NULL;
dwSentBytes = 0;
dwTotalBytes = 0;
}
};
struct stRecvOverlapped : public stOverlappedBase
{
char buffer[MAX_PACKAGE_SIZE]; // <20><><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD>
stRecvOverlapped()
{
memset(buffer, 0, MAX_PACKAGE_SIZE);
IoMode = IoRecv;
WsaBuf.buf=buffer;
WsaBuf.len=MAX_PACKAGE_SIZE;
}
};
#endif