📄 sockserver.h
字号:
// Icer Game Engine v1.0
// Http://www.ngame2000.com
//
//Author:杨冰(源代码之光)
// E-mail: iceryeah2000@163.com
// QQ : 7746642
//
//Module:网络socket服务端
//
//Create:2003-3-6
//Updata:2003-3-14
//
//Describe:提供网络功能部分的服务端管理接口
//Remark: 2003-3-10: Deleting all codes,and rewrite it
// 2003-3-11: Adding event and thread
// 2003-3-14: Compeling all codes!!
#pragma once
#include "SockClient.h"
using namespace std;
class CSockServer
{
private:
SOCKET m_sSocket; //socket
char m_strIP[128]; //ip地址
DWORD m_dwPort; //端口
DWORD m_dwProtocol; //协议
HANDLE m_hEvent[2]; //事件
HANDLE m_hThread; //消息线程
list <CSockClient*> m_ClientList; // 客户端Socket列表
bool m_bRunState; //运行状态
bool static ListenThread(LPVOID lpParam); //侦听线程
bool static ServerThread(LPVOID lpParam); //服务端消息响应线程
typedef bool (*ServerThreadMsg)(CSockServer* pSocket,DWORD dwMessage,DWORD dwValue,DWORD dwErrorCode);
typedef bool (*ClientThreadMsg)(CSockClient* pSocket,DWORD dwMessage,DWORD dwValue,DWORD dwErrorCode);
ServerThreadMsg m_pListenThreadMessage;
ClientThreadMsg m_pServerThreadMessage;
public:
CSockServer(void);
~CSockServer(void);
bool Initialize(void);
void Cleanup(void);
bool Create(const char* strIP, DWORD dwPort,DWORD dwProtocol = SOCK_STREAM); //创建socket
bool Listen(DWORD dwMaxNumber); //侦听
bool Accept(void); //accept
bool SendTcpAll(LPVOID lpBuffer,DWORD dwBufferLenght,DWORD dwFlags = 0); //发送信息给全体客户端
bool InstrSocket(CSockClient* pSocket) {m_ClientList.push_back(pSocket); return true;}
bool DeleteSocket(CSockClient* pSocket) {m_ClientList.remove(pSocket); return true;}
bool CheckList(void);
public:
bool GetRunState(void) {return m_bRunState;} //获得运行状态
void SetRunState(bool bState) {m_bRunState = bState;} //设置运行状态
HANDLE* GetEvent(void) {return m_hEvent;} //获得事件
SOCKET GetSocket(void) {return m_sSocket;} //获得socket
list<CSockClient*>* GetClientList(void) { return &m_ClientList; }
ServerThreadMsg GetListenThread(void) {return m_pListenThreadMessage;}
void SetListenThread(ServerThreadMsg pMsg) {m_pListenThreadMessage = pMsg;}
ClientThreadMsg GetServerThread(void) {return m_pServerThreadMessage;}
void SetServerThread(ClientThreadMsg pMsg) {m_pServerThreadMessage = pMsg;}
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -