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

📄 p2pserver.h

📁 实现P2P NAT 客户端之间的通信,可以在同一LAN之间通信,也可以在不同LAN中相互通信
💻 H
字号:

#ifndef __P2P_SERVER_H__
#define __P2P_SERVER_H__

#include "../CommonDefine.h"

class P2PServer
{
public:
	P2PServer();
	~P2PServer();

	bool ProcMsg();

private:
	bool Initialize();
	static DWORD WINAPI RecvThreadProc(LPVOID lpParam);

	// 处理各个消息的函数
	bool ProcUserLoginMsg(MSGDef::TMSG_HEADER *pMsgHeader, const sockaddr_in& remoteAddr);
	bool ProcGetUserListMsg(MSGDef::TMSG_HEADER *pMsgHeader, const sockaddr_in& remoteAddr);
	bool ProcP2PConnectMsg(MSGDef::TMSG_HEADER *pMsgHeader, sockaddr_in& remoteAddr);
	bool ProcUserLogoutMsg(MSGDef::TMSG_HEADER *pMsgHeader, sockaddr_in& remoteAddr);
	bool ProcUserActiveQueryMsg(MSGDef::TMSG_HEADER *pMsgHeader, const sockaddr_in& remoteAddr);

private:
	SOCKET				m_sSocket;			// 套接字
	HANDLE				m_hThread;			// 接收消息的线程
	CRITICAL_SECTION	m_PeerListLock;		// 读写m_PeerList的临界区对象
	PeerList			m_PeerList;			// 所有与server相连的节点组成的链表
};

#endif	// __P2P_SERVER_H__

⌨️ 快捷键说明

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