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

📄 serversocket.h

📁 一个HTTP协议的封装类
💻 H
字号:
#pragma once
#include "Socket.h"
#include "..\data\User.h"
using fs::data::User;
#include "..\data\Message.h"
using namespace fs::data;

namespace fs
{
	namespace socket
	{
		class ToClientSocket;

		class ServerSocket:public Socket
		{
		public:
			ServerSocket(UINT port,UINT backlog=SOMAXCONN);
		public:
			virtual ~ServerSocket(void);
			
		protected:
			//存储所有的连接
			SocketMap toClientSocketMap;
			UserMap userMap;
		public:
			virtual VOID Run();//持续调用Accept();

			/************************************************************************/
			/*  服务端具有的方法                                                        */
			/************************************************************************/
			//等待请求,返回New出的ToClientSocket的指针
			ToClientSocket* AcceptD();
			/*
			接收到请求后的处理,子类可以覆盖此方法,比如实现不接收它的请求。
			默认是启动线程,持续接收信息,并把ToClientSocket的指针保存。
			*/
			virtual VOID OnAccept( ToClientSocket* pToClientSocket );
			//接收到信息后,
			virtual VOID OnReceive(ToClientSocket* pToClientSocket,CHAR* pBuf,UINT len);
			//给客户广播信息,是一个服务端主动的方法
			VOID SendMessageToClients(CONST CHAR* pBuf,UINT len);
			VOID SendMessageToClients(CONST CString& str);
			VOID SendOnlineUsersToClients();
			//处理客户操作
			virtual VOID OnClientExit(ToClientSocket* pToClientSocket);
			virtual VOID OnClientAuthentiateSuccess(ToClientSocket* pToClientSocket);
			virtual VOID OnClientAuthentiateFail(ToClientSocket* pToClientSocket);
			virtual VOID OnClientChat(ToClientSocket* pToClientSocket,CHAR* pBuf,UINT size)=0;
			virtual VOID OnClientDraw(ToClientSocket* pToClientSocket,CHAR* pBuf,UINT size)=0;
			VOID OnPassiveDisconnect();
		};
	}
}

⌨️ 快捷键说明

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