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

📄 tcpclient.cpp

📁 一个小游戏五子棋的浙江大学开发我的课程设计
💻 CPP
字号:
//	Implementation of class CTCPClient
//	Author: ShiXingdong
//	Last modify: Jun 1st, 2002

#include "stdafx.h"
#include "TCPClient.h"

using namespace std;

ULONG iTCPClient_ServerAddr=0;

bool CTCPClient::Initialize(unsigned short nPortNum)
{
	m_bConnected=false;
	m_nPortNum=nPortNum;
	m_ClientAddress.sin_family=AF_INET;
	m_ClientAddress.sin_port=htons(nPortNum);
	m_ClientAddress.sin_addr.s_addr=htonl(INADDR_ANY);
	m_sctClientSocket=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
	return(m_sctClientSocket!=INVALID_SOCKET);
}


CTCPClient::CTCPClient(unsigned short nPortNum)
{
	WSADATA data;
	WSAStartup(MAKEWORD(2,2),&data);
	Initialize(nPortNum);
}

CTCPClient::~CTCPClient()
{
	WSACleanup();
}

bool CTCPClient::IsOK() const
{
	return(m_bConnected);
}

bool CTCPClient::Connect(string strServerAddress, unsigned short nServerPort)
{	int ret;
	int bReuse=true;
	if(m_bConnected)
		return(false);
	m_ServerAddress.sin_addr.s_addr=inet_addr(strServerAddress.c_str());
	m_ServerAddress.sin_family=AF_INET;
	m_ServerAddress.sin_port=htons(nServerPort);
	setsockopt(m_sctClientSocket,SOL_SOCKET,SO_REUSEADDR,(char *)&bReuse,sizeof(bReuse));
	if((ret=connect(m_sctClientSocket,(sockaddr*)&m_ServerAddress,sizeof(m_ServerAddress)))==SOCKET_ERROR)
	{	
		ret=WSAGetLastError();
		return(false);
	}
	m_bConnected=true;
	return(true);
}

bool CTCPClient::Disconnect()
{
	if(!m_bConnected)
		return(false);
	m_bConnected=false;
	closesocket(m_sctClientSocket);
	return(true);
}

bool CTCPClient::Send(const void*  pDataToSend, unsigned int nLength)
{
	int ret;
	if(!m_bConnected)
	{
		return(false);
	}
	else
	{
		ret=send(m_sctClientSocket,(char*)pDataToSend,nLength,0);
		return(true);
	}

}

bool CTCPClient::Receive(void*  pDataReceived, unsigned int nLength)
{
	if(!m_bConnected)
	{
		return(false);
	}
	else
	{
		recv(m_sctClientSocket,(char*)pDataReceived,nLength,0);
		return(true);
	}
}

⌨️ 快捷键说明

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