p2pserver.h

来自「实现P2P NAT 客户端之间的通信,可以在同一LAN之间通信,也可以在不同LA」· C头文件 代码 · 共 34 行

H
34
字号

#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 + =
减小字号Ctrl + -
显示快捷键?