📄 xsocket.h
字号:
// XSocket.h: interface for the XSocket class.
//
//////////////////////////////////////////////////////////////////////
// 庆歹狼 犬牢内靛绰 1官捞飘, 农扁绰 WORD肺 函版登菌澜. 溜 庆歹绰 醚 3官捞飘
#if !defined(AFX_XSOCKET_H__F9D1BA42_7338_11D2_A8E6_00001C7030A6__INCLUDED_)
#define AFX_XSOCKET_H__F9D1BA42_7338_11D2_A8E6_00001C7030A6__INCLUDED_
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
#define _WINSOCK2API_
//#define FD_SETSIZE 2000
#include <windows.h>
#include <windowsx.h>
#include <winsock2.h>
//#include <winsock.h>
#include <stdlib.h>
#include <stdio.h>
#include <memory.h>
#include <malloc.h>
#include <winbase.h>
#define DEF_XSOCK_LISTENSOCK 1
#define DEF_XSOCK_NORMALSOCK 2
#define DEF_XSOCK_SHUTDOWNEDSOCK 3
#define DEF_XSOCKSTATUS_READINGHEADER 11
#define DEF_XSOCKSTATUS_READINGBODY 12
#define DEF_XSOCKEVENT_SOCKETMISMATCH -121 // 家南 捞亥飘客 家南捞 辑肺 促福促. (捞繁 版快啊?)
#define DEF_XSOCKEVENT_CONNECTIONESTABLISH -122 // 立加捞 捞风绢 脸促.
#define DEF_XSOCKEVENT_RETRYINGCONNECTION -123 // 立加阑 促矫 矫档窍绰 吝捞促.
#define DEF_XSOCKEVENT_ONREAD -124 // 皋矫瘤甫 佬绰 吝捞促.
#define DEF_XSOCKEVENT_READCOMPLETE -125 // 窍唱狼 皋矫瘤甫 肯傈洒 荐脚沁促.
#define DEF_XSOCKEVENT_UNKNOWN -126 // 舅荐绝绰 捞亥飘捞促.
#define DEF_XSOCKEVENT_SOCKETCLOSED -127 // 家南捞 摧躯促.
#define DEF_XSOCKEVENT_BLOCK -128 // 皋矫瘤甫 焊郴促啊 家南捞 喉钒等 惑怕捞促.
#define DEF_XSOCKEVENT_SOCKETERROR -129 // 家南俊 俊矾啊 惯积沁促. 捞版快 努贰胶甫 昏力窍咯具 茄促.
#define DEF_XSOCKEVENT_CRITICALERROR -130 // 摹疙利牢 俊矾肺 橇肺弊伐 傈眉啊 肛苗具 茄促.
#define DEF_XSOCKEVENT_NOTINITIALIZED -131 // 努贰胶啊 檬扁拳 登瘤 臼篮 惑怕肺 荤侩灯促.
#define DEF_XSOCKEVENT_MSGSIZETOOLARGE -132 // 焊郴绊磊 窍绰 皋矫瘤狼 荤捞令啊 呈公 农促.
#define DEF_XSOCKEVENT_CONFIRMCODENOTMATCH -133 // 犬牢内靛啊 老摹窍瘤 臼绰促. 昏力登绢具 茄促.
#define DEF_XSOCKEVENT_QUENEFULL -134 // 喉废 钮狼 傍埃捞 绝促.
#define DEF_XSOCKEVENT_UNSENTDATASENDBLOCK -135 // 钮俊 乐绰 单捞磐甫 焊郴促啊 肚 喉废捞 吧啡促.
#define DEF_XSOCKEVENT_UNSENTDATASENDCOMPLETE -136 // 钮俊 乐绰 葛电 单捞磐甫 焊陈促.
#define DEF_XSOCKBLOCKLIMIT 300 // 捞 努贰胶 家南篮 ?锅捞惑 喉废登搁 歹捞惑 单捞磐甫 历厘且 荐 绝促.
class XSocket
{
public:
void * operator new (size_t size)
{
return HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, size);
};
void operator delete(void * mem)
{
HeapFree(GetProcessHeap(), HEAP_NO_SERIALIZE, mem);
};
int iSendMsgBlockingMode(char *buf,int nbytes);
int iGetPeerAddress(char * pAddrString);
char * pGetRcvDataPointer(DWORD * pMsgSize, char * pKey = NULL);
BOOL bAccept(class XSocket * pXSock, unsigned int uiMsg);
BOOL bListen(char * pAddr, int iPort, unsigned int uiMsg);
int iSendMsg(char * cData, DWORD dwSize, char cKey = NULL);
BOOL bConnect(char * pAddr, int iPort, unsigned int uiMsg);
BOOL bBlockConnect(char * pAddr, int iPort, unsigned int uiMsg);
int iOnSocketEvent(WPARAM wParam, LPARAM lParam);
BOOL bInitBufferSize(DWORD dwBufferSize);
XSocket(HWND hWnd, int iBlockLimit);
virtual ~XSocket();
int m_WSAErr;
BOOL m_bIsAvailable;
BOOL m_bIsWriteEnabled; // 2001-11-27老 眠啊
void _CloseConn();
int _iSendUnsentData();
int _iRegisterUnsentData(char * cData, int iSize);
int _iSend(char * cData, int iSize, BOOL bSaveFlag);
int _iSend_ForInternalUse(char * cData, int iSize);
int _iOnRead();
char m_cType;
char * m_pRcvBuffer;
char * m_pSndBuffer;
DWORD m_dwBufferSize;
SOCKET m_Sock;
char m_cStatus;
DWORD m_dwReadSize;
DWORD m_dwTotalReadSize;
char m_pAddr[30];
int m_iPortNum;
char * m_pUnsentDataList[DEF_XSOCKBLOCKLIMIT];
int m_iUnsentDataSize[DEF_XSOCKBLOCKLIMIT];
short m_sHead, m_sTail;
unsigned int m_uiMsg;
HWND m_hWnd;
int m_iBlockLimit;
};
#endif // !defined(AFX_XSOCKET_H__F9D1BA42_7338_11D2_A8E6_00001C7030A6__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -