#include "stdafx.h" #include "ServerSocket.h" #include "NetLinkMgr.h" #include "NetLinkClient.h" CServerSocket::CServerSocket(CNetLinkMgr* pParent) : m_pParent(pParent) { ASSERT(m_pParent != NULL); } CServerSocket::~CServerSocket( void ) { Close(); } // CServerSocket 成员函数 /***************************************************************** **【函数名称】 Init **【函数功能】 初始化SOCKET SERVER **【参数】 a_nListenPort: 监听端口 **【返回值】 初始化是否成功 ****************************************************************/ BOOL CServerSocket::init( int a_ListenPort ) { if(!Create(a_ListenPort)) return FALSE; if(!Listen()) { Close(); return FALSE; } return TRUE; } /***************************************************************** **【函数名称】 OnAccept **【函数功能】 客户端连接请求事件响应(重写) **【参数】 **【返回值】 ****************************************************************/ void CServerSocket::OnAccept( int ErrorCode ) { // 响应客户端的连接请求 CNetLinkClient* pClient = new CNetLinkClient(m_pParent); ASSERT(pClient != NULL); if(pClient != NULL) { if(Accept(*pClient)) m_pParent->onClientConnect(pClient); // 连接建立 else delete pClient; } CAsyncSocket::OnAccept(ErrorCode); }