⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 basedatahandle.cpp

📁 我写的SQL Server网络备份工具。(服务器端用VC开发
💻 CPP
字号:
//---------------------------------------------------------------------------


#pragma hdrstop

#include "BaseDataHandle.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

InitCom::InitCom()
{
	m_bInitSucceed = SUCCEEDED(CoInitialize(NULL));
}
InitCom::~InitCom()
{
	if(m_bInitSucceed)
		::CoUninitialize();
}
BOOL InitCom::operator ! ()
{
	return !m_bInitSucceed;
}

PChar::PChar()
      :m_pStr(NULL)
{
}
PChar::PChar(char *p)
{
	_ASSERT(p);
	m_pStr = p;
}
PChar::	~PChar()
{
	if(m_pStr)
		delete []m_pStr;
}
void PChar::Attach(char *p)
{
	if(m_pStr)
		delete []m_pStr;
	m_pStr = p;
}
PChar::operator char * ()
{
	return m_pStr;
}

int sendn(SOCKET sock , char *pBuff , int len)
{
	int nSendLength , nSize;
    nSize = len;
	while(nSize > 0)
	{
		nSendLength = send(sock , pBuff , nSize , 0);
		if(nSendLength < 0)
		{
			return -1;
		}
		if(nSendLength == 0)
		{
			return len - nSize;
		}

		nSize -= nSendLength;
		pBuff += nSendLength;
	}
	return len;
}

int readn(SOCKET sock , char *pBuff , int len)
{
	int nSize = len;
	int nReadLength;

    while(nSize > 0)
	{
		 nReadLength = recv(sock , pBuff , nSize , 0);
		if(nReadLength < 0)
		{
			return -1;
		}
		if(nReadLength == 0)
		{
			return len - nSize;
		}
		nSize -= nReadLength;
		pBuff += nReadLength;
	}
	return len;
}

CInitSocket::CInitSocket()
{
	m_bInitSucceed = (WSAStartup(MAKEWORD(2,2) ,&m_wsaData) == 0);
}

CInitSocket::~CInitSocket()
{
	if(m_bInitSucceed)
	{
		WSACleanup();
	}
}
BOOL CInitSocket::operator ! ()
{
	return !m_bInitSucceed;
}
CInitSocket::operator WSADATA * ()
{
	return &m_wsaData;
}
MySocket::MySocket()
    :m_Socket(INVALID_SOCKET)
{
}
MySocket::MySocket(int af, int type, int protocol)
{
	m_Socket = socket(af , type , protocol);
}
MySocket::~MySocket()
{
	if(m_Socket != INVALID_SOCKET)
	{
		closesocket(m_Socket);
	}
}
MySocket::operator SOCKET ()
{
	return m_Socket;
}
void MySocket::Attach(SOCKET sock)
{
    _ASSERT(m_Socket == INVALID_SOCKET);
	m_Socket = sock;
}
void MySocket::Close()
{
	if(m_Socket != INVALID_SOCKET)
	{
		closesocket(m_Socket);
		m_Socket = INVALID_SOCKET;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -