?? serversocket.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();//持續(xù)調用Accept();
/************************************************************************/
/* 服務端具有的方法 */
/************************************************************************/
//等待請求,返回New出的ToClientSocket的指針
ToClientSocket* AcceptD();
/*
接收到請求后的處理,子類可以覆蓋此方法,比如實現(xiàn)不接收它的請求。
默認是啟動線程,持續(xù)接收信息,并把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 + -