90 lines
1.7 KiB
C
90 lines
1.7 KiB
C
|
|
#ifndef _CLIENT_CONNECTION_H_
|
|||
|
|
#define _CLIENT_CONNECTION_H_
|
|||
|
|
|
|||
|
|
#include "server_def.h"
|
|||
|
|
|
|||
|
|
using namespace tick64;
|
|||
|
|
using namespace container;
|
|||
|
|
using namespace lock;
|
|||
|
|
|
|||
|
|
class NetSession : public WorkSocket
|
|||
|
|
{
|
|||
|
|
public:
|
|||
|
|
typedef WorkSocket Inherited;
|
|||
|
|
|
|||
|
|
public:
|
|||
|
|
NetSession(const char* name);
|
|||
|
|
NetSession(SOCKET s, sockaddr_in* client_addr, const char* name);
|
|||
|
|
virtual ~NetSession();
|
|||
|
|
|
|||
|
|
//<2F><>ȡ<EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD>ַ<EFBFBD>Ͷ˿<CDB6>
|
|||
|
|
inline sockaddr_in GetRemoteAddrIn()
|
|||
|
|
{
|
|||
|
|
return remote_addr_;
|
|||
|
|
}
|
|||
|
|
//<2F><>ȡ<EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
inline const char* GetRemoteHost()
|
|||
|
|
{
|
|||
|
|
return remote_host_;
|
|||
|
|
}
|
|||
|
|
//<2F><>ȡ<EFBFBD>ͻ<EFBFBD><CDBB>˶˿<CBB6>
|
|||
|
|
inline int GetRemotePort()
|
|||
|
|
{
|
|||
|
|
return remote_port_;
|
|||
|
|
}
|
|||
|
|
inline bool GetActiveKeepAlive()
|
|||
|
|
{
|
|||
|
|
return keep_alive_;
|
|||
|
|
}
|
|||
|
|
inline void SetActiveKeepAlive(const bool act)
|
|||
|
|
{
|
|||
|
|
keep_alive_ = act;
|
|||
|
|
}
|
|||
|
|
inline void Run()
|
|||
|
|
{
|
|||
|
|
SingleRun();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
inline bool registed()
|
|||
|
|
{
|
|||
|
|
return registed_;
|
|||
|
|
}
|
|||
|
|
inline int getClientServerIndex()
|
|||
|
|
{
|
|||
|
|
return client_srv_idx_;
|
|||
|
|
}
|
|||
|
|
inline const char* getClientName()
|
|||
|
|
{
|
|||
|
|
return client_name_;
|
|||
|
|
}
|
|||
|
|
inline int getClientType()
|
|||
|
|
{
|
|||
|
|
return client_type_;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
protected:
|
|||
|
|
void SetClientSocket(SOCKET sock, sockaddr_in* client_addr);
|
|||
|
|
|
|||
|
|
/* <20><>֤<EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>Ч
|
|||
|
|
*@return <EFBFBD><EFBFBD><EFBFBD><EFBFBD>true<EFBFBD><EFBFBD>ʾע<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>false<EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
*/
|
|||
|
|
virtual bool OnValidateRegData(const SrvDef::PSERVER_REGDATA regdata) = 0;
|
|||
|
|
|
|||
|
|
void Disconnected();
|
|||
|
|
virtual bool PreProcess(DataPacketReader* data_buf);
|
|||
|
|
protected:
|
|||
|
|
sockaddr_in remote_addr_; //<2F>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD>ַ<EFBFBD>Ͷ˿<CDB6>
|
|||
|
|
char remote_host_[128]; //<2F>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
int remote_port_; //<2F>ͻ<EFBFBD><CDBB>˶˿<CBB6>
|
|||
|
|
bool keep_alive_;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB>˷<EFBFBD><CBB7>ͱ<EFBFBD><CDB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>
|
|||
|
|
private:
|
|||
|
|
bool registed_; //<2F>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>Ѿ<EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
int client_srv_idx_; //<2F>ͻ<EFBFBD><CDBB>˵ķ<CBB5><C4B7><EFBFBD><EFBFBD><EFBFBD>ID
|
|||
|
|
char client_name_[40]; //<2F>ͻ<EFBFBD><CDBB><EFBFBD>ע<EFBFBD><D7A2><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
int client_type_; //<2F>ͻ<EFBFBD><CDBB><EFBFBD>ע<EFBFBD><D7A2><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
|
|||
|
|
#endif
|
|||
|
|
|