serversocket.cpp
来自「天之炼狱1服务器端源文件游戏服务端不完整」· C++ 代码 · 共 108 行
CPP
108 行
////////////////////////////////////////////////////////////////////////// ServerSocket.cpp//// by Reiot//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// include files//////////////////////////////////////////////////#include "ServerSocket.h"//////////////////////////////////////////////////////////////////////// constructor//////////////////////////////////////////////////////////////////////ServerSocket::ServerSocket ( uint port , uint backlog ) throw ( BindException , Error ): m_Impl(NULL){ __BEGIN_TRY // create socket implementation object m_Impl = new SocketImpl(port); // create socket m_Impl->create(); // reuse address before Bind() // 官牢靛 窍扁 傈俊 林家 府蜡令甫 矫胶袍俊 舅妨具 茄促. m_Impl->setReuseAddr(); // bind address to socket // 捞固 port啊 m_Impl俊 历厘登绢 乐栏骨肺, 颇扼固磐绝绰 Bind()甫 龋免秦档 等促. m_Impl->bind();// m_Impl->setSendBufferSize( 9000 );// m_Impl->setReceiveBufferSize( 9000 ); // set listening queue size m_Impl->listen(backlog); __END_CATCH} //////////////////////////////////////////////////////////////////////// destructor//////////////////////////////////////////////////////////////////////ServerSocket::~ServerSocket () throw ( Error ){ __BEGIN_TRY if ( m_Impl != NULL ) { m_Impl->close(); delete m_Impl; m_Impl = NULL; } __END_CATCH} //////////////////////////////////////////////////////////////////////// close socket//////////////////////////////////////////////////////////////////////void ServerSocket::close () throw ( Error ){ __BEGIN_TRY m_Impl->close(); __END_CATCH}//////////////////////////////////////////////////////////////////////// accept new connection//////////////////////////////////////////////////////////////////////Socket * ServerSocket::accept () throw ( Error ){ __BEGIN_TRY Socket * Client = NULL; try { SocketImpl * impl = m_Impl->accept(); if ( impl == NULL ) throw UnknownError("impl == NULL"); Client = new Socket(impl); // Client->setNonBlocking(); } catch ( NonBlockingIOException& ) { // ignore } catch ( ConnectException& ) { // ignore } return Client; __END_CATCH}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?