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

📄 g_tcplistener.cpp

📁 PC网络游戏的编程
💻 CPP
字号:
/*
g_tcplistener.cpp: implementation of the CG_TCPListener class.
*/

#include "g_tcplistener.h"

CG_TCPListener::CG_TCPListener()
{

}

CG_TCPListener::~CG_TCPListener()
{

}

bool CG_TCPListener::StartListen(char *ip, int port,bool encrypt)
{
	m_socket.Initialize(PROTOCOL_TCP);
	if(!m_socket.BindAddr(ip,port)) return false;
	/* initialize rand seed */
	srand(Sys_GetTime());
	m_bEncrypt = encrypt;
	return m_socket.Listen();
}

CG_TCPSession *CG_TCPListener::AcceptNewSession()
{
	if(!m_socket.CanRead()) return false;
	SOCKET socket = m_socket.Accept();
	if(!socket) return false;
	
	CG_TCPSession *tmp = new CG_TCPSession;
	tmp->Attach(socket);
	/* set encrypt seed */
	tmp->SendSeed(ComputeSeed());
	return tmp;
}

void CG_TCPListener::Close()
{
	m_socket.Close();
}

long CG_TCPListener::ComputeSeed()
{
	long seed = 0;
	if(!m_bEncrypt) return seed;
	seed |= rand()<<16;
	seed |= rand();
	return seed;
}

⌨️ 快捷键说明

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