📄 socketbase.h.bak
字号:
/*
2003 by zhy
*/
#ifndef _MY_STATEBASE_H
#define _MY_STATEBASE_H
#pragma warning(disable:4786)
#include <vector>
#include <string>
using namespace std;
namespace NET{
class CSocketBase
{
public:
enum typeState
{
STATE_CLOSE = 0x00,
STATE_OPEN = 0x01,
STATE_ERR = 0x02,
STATE_EOF = 0x04,
STATE_MASK = 0x07
};
////////////////////////////////////////////////////////////////////////////
// Constructors / Destructor //
////////////////////////////////////////////////////////////////////////////
CSocketBase(SOCKET sock = INVALID_SOCKET,typeState nState = STATE_CLOSE) : m_sock(sock),
m_nState(nState)
{
}
virtual ~CSocketBase(){}
////////////////////////////////////////////////////////////////////////////
// Operations //
////////////////////////////////////////////////////////////////////////////
virtual int Write(const void *buf, size_t len) = 0;
virtual int Read(void *buf, size_t len) = 0;
// Close
void Close();
void Onlyclose();
void Shutdown();
////////////////////////////////////////////////////////////////////////////
// Attributes //
////////////////////////////////////////////////////////////////////////////
typeState GetState(void) const { return m_nState; }
bool Closed(void) const { return (GetState() & STATE_MASK) == STATE_CLOSE; }
bool Opened(void) const { return (GetState() & STATE_OPEN) != 0; }
bool Error(void) const { return (GetState() & STATE_ERR) != 0; }
bool Eof(void) const { return (GetState() & STATE_EOF) != 0; }
protected:
////////////////////////////////////////////////////////////////////////////
// Protected Operations //
////////////////////////////////////////////////////////////////////////////
void SetState(typeState nState) { m_nState = nState; }
void SetStateBit(typeState nState);
void ClearStateBit(typeState nState);
////////////////////////////////////////////////////////////////////////////
// Protected Operations,Something SubClass will use //
////////////////////////////////////////////////////////////////////////////
int SocketTimeCheck(SOCKET fd,int nAction,int nSec,int nUSec);
struct in_addr GetIPAddr( const char * lpszHost );
bool GetOwnIP(vector<string>& vOwnIP);
protected:
typeState m_nState;
SOCKET m_sock;
};
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -