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

📄 tcpsocket.cpp

📁 一个语音聊天软件
💻 CPP
字号:
// TCPSocket.cpp: implementation of the CTCPSocket class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "TCPSocket.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
int CTCPSocket::Initialize()
{
	WSADATA wsd;
	
	return WSAStartup(MAKEWORD(2,2), &wsd);
}

int CTCPSocket::CleanUp()
{
	return WSACleanup();
}

CTCPSocket::CTCPSocket(SOCKET s)
{
	m_socket = s;
}

CTCPSocket::CTCPSocket()
{
	m_socket = INVALID_SOCKET;
}

CTCPSocket::~CTCPSocket()
{
}

int CTCPSocket::Create()
{
	m_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_IP);

	return m_socket;
}

int CTCPSocket::Bind(u_short port /* = DEFAULT_PORT */)
{
	m_local.sin_addr.s_addr = htonl(INADDR_ANY);
	m_local.sin_family = AF_INET;
	m_local.sin_port = port;

	return bind(m_socket, (struct sockaddr*)&m_local, sizeof(m_local));
}

int CTCPSocket::Listen(int backlog)
{
	return listen(m_socket, backlog);
}

SOCKET CTCPSocket::Accept(sockaddr* addr /* = NULL */, int* addrlen /* = NULL */)
{
	return accept(m_socket, addr, addrlen);
}

int CTCPSocket::Connect(DWORD ip, u_short port /* = DEFAULT_PORT */)
{
	ip = htonl(ip);

	m_foreign.sin_addr.s_addr = ip;
	m_foreign.sin_family = AF_INET;
	m_foreign.sin_port = port;

	return connect(m_socket, (struct sockaddr*)&m_foreign, sizeof(m_foreign));
}

int CTCPSocket::Send(const char *pBuf, int len)
{
	return send(m_socket, pBuf, len, 0);
}

int CTCPSocket::Recv(char *pbuf, int len)
{
	return recv(m_socket, pbuf, len, 0);
}

int	 CTCPSocket::Close()
{
	int ret;

	ret = shutdown(m_socket,2);
	return closesocket(m_socket);
}

⌨️ 快捷键说明

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