📄 blocksock.h
字号:
// blocksock.h
typedef const struct sockaddr* LPCSOCKADDR;
//CSockAddress和CMyBlockSocketException辅助类
//CMyBlockSocketException异常类
//所有CMyBlockSocket函数在WinSock返回错误时都会陷入异常,产生一个CMyBlockException对象
//CMyBlockException类从MFC的CException类派生,并重载了GetErrorMessage()函数,它给出了
//WinSock错误号和陷入异常时CMyBlockSocket提供的字符串
class CMyBlockSocketException : public CException
{
DECLARE_DYNAMIC(CMyBlockSocketException)
public:
// 构造函数
CMyBlockSocketException(char* pchMessage);
public:
~CMyBlockSocketException() {}
virtual BOOL GetErrorMessage(LPTSTR lpstrError, UINT nMaxError,
PUINT pnHelpContext = NULL);
private:
int m_nError;
CString m_strMessage;
};
/*//zj add
//自定义套接字类,支持阻塞模式处理
class CMyBlockSocket : public CObject
{
DECLARE_DYNAMIC(CMyBlockSocket)
public:
SOCKET m_hSocket;
CMyBlockSocket() { m_hSocket = NULL; }
void Cleanup();
void Create(int nType = SOCK_STREAM);
void Close();
void Bind(LPCSOCKADDR psa);
void Listen();
void Connect(LPCSOCKADDR psa);
BOOL Accept(CMyBlockSocket& s, LPSOCKADDR psa);
int Send(const char* pch, const int nSize, const int nSecs);
int Write(const char* pch, const int nSize, const int nSecs);
int Receive(char* pch, const int nSize, const int nSecs);
int SendDatagram(const char* pch, const int nSize, LPCSOCKADDR psa,
const int nSecs);
int ReceiveDatagram(char* pch, const int nSize, LPSOCKADDR psa,
const int nSecs);
void GetPeerAddr(LPSOCKADDR psa);
void GetSockAddr(LPSOCKADDR psa);
//static CSocketAddress GetHostByName(const char* pchName,
//const USHORT ushPort = 0);
static const char* GetHostByAddr(LPCSOCKADDR psa);
operator SOCKET()
{ return m_hSocket; }
};
//zj add
//CMyHttpBlockSocket继承CMyBlockSocket,加入缓冲区机制,对数据进行处理
class CMyHttpBlockSocket : public CMyBlockSocket
{
public:
DECLARE_DYNAMIC(CMyHttpBlockSocket)
enum {nSizeRecv = 1000}; //最大接收缓冲区的大小(>HTTP头信息的长度)
CMyHttpBlockSocket();
~CMyHttpBlockSocket();
int ReadHttpHeaderLine(char* pch, const int nSize, const int nSecs);
int ReadHttpResponse(char* pch, const int nSize, const int nSecs);
private:
char* m_pReadBuf; // 读取缓冲区
int m_nReadBuf; // 读取缓冲区中的字节数
};*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -