49 lines
1.3 KiB
C++
49 lines
1.3 KiB
C++
#ifndef HGL_NETWORK_ACCEPT_SERVER_INCLUDE
|
|
#define HGL_NETWORK_ACCEPT_SERVER_INCLUDE
|
|
|
|
#include<hgl/network/ServerSocket.h>
|
|
namespace hgl
|
|
{
|
|
namespace network
|
|
{
|
|
/**
|
|
* 使用Accept处理接入的服务器基类
|
|
*/
|
|
class AcceptServer:public ServerSocket ///使用Accept创建接入的服务器基类
|
|
{
|
|
char *ipstr;
|
|
|
|
fd_set accept_set;
|
|
struct timeval accept_timeout,ato;
|
|
|
|
protected:
|
|
|
|
virtual int CreateServerSocket()=0; ///<创建Server Socket
|
|
|
|
protected:
|
|
|
|
double overload_wait;
|
|
|
|
public:
|
|
|
|
AcceptServer()
|
|
{
|
|
overload_wait=HGL_SERVER_OVERLOAD_RESUME_TIME;
|
|
ipstr = nullptr;
|
|
|
|
FD_ZERO(&accept_set);
|
|
hgl_zero(accept_timeout);
|
|
|
|
SetTimeOut(HGL_NETWORK_TIME_OUT);
|
|
}
|
|
|
|
virtual ~AcceptServer(){SAFE_CLEAR(ipstr);}
|
|
|
|
void SetTimeOut(const double);
|
|
|
|
virtual int Accept(IPAddress *); ///<接入一个socket连接
|
|
};//class AcceptServer
|
|
}//namespace network
|
|
}//namespace hgl
|
|
#endif//HGL_NETWORK_ACCEPT_SERVER_INCLUDE
|