1
This commit is contained in:
parent
f6cae707ed
commit
40d9fc3fca
@ -45,6 +45,7 @@ public:
|
|||||||
virtual void Reset() override
|
virtual void Reset() override
|
||||||
{
|
{
|
||||||
a8::MixedSession::Reset();
|
a8::MixedSession::Reset();
|
||||||
|
seed_ = rand();
|
||||||
send_i_ = 0;
|
send_i_ = 0;
|
||||||
send_j_ = 0;
|
send_j_ = 0;
|
||||||
recv_i_ = 0;
|
recv_i_ = 0;
|
||||||
@ -94,18 +95,23 @@ public:
|
|||||||
#endif
|
#endif
|
||||||
bool warning = false;
|
bool warning = false;
|
||||||
while (buflen - offset >= sizeof(ClientPktHeader)) {
|
while (buflen - offset >= sizeof(ClientPktHeader)) {
|
||||||
ClientPktHeader* p = (ClientPktHeader*)&buf[offset];
|
ClientPktHeader header = *((ClientPktHeader*)&buf[offset]);
|
||||||
if (buflen - offset < sizeof(ClientPktHeader) + p->size) {
|
DecryptRecv((unsigned char*)&header, sizeof(header));
|
||||||
|
header.size =
|
||||||
|
((header.size & 0x00FF) << 8) +
|
||||||
|
((header.size & 0xFF00) >> 8);
|
||||||
|
if (buflen - offset < sizeof(ClientPktHeader) + header.size) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
header.size -= 4;
|
||||||
App::Instance()->AddSocketMsg(SF_GameClient,
|
App::Instance()->AddSocketMsg(SF_GameClient,
|
||||||
socket_handle,
|
socket_handle,
|
||||||
saddr,
|
saddr,
|
||||||
p->cmd,
|
header.cmd,
|
||||||
0,
|
0,
|
||||||
&buf[offset + sizeof(ClientPktHeader)],
|
&buf[offset + sizeof(ClientPktHeader)],
|
||||||
p->size);
|
header.size);
|
||||||
offset += sizeof(ClientPktHeader) + p->size;
|
offset += sizeof(ClientPktHeader) + header.size;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (warning) {
|
if (warning) {
|
||||||
@ -125,6 +131,17 @@ public:
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
virtual void OnConnect() override
|
||||||
|
{
|
||||||
|
int SMSG_AUTH_CHALLENGE = 0x1EC;
|
||||||
|
ServerPktHeader header;
|
||||||
|
header.cmd = SMSG_AUTH_CHALLENGE;
|
||||||
|
unsigned short len = 4 + 2;
|
||||||
|
header.size = (len << 8) + (len >> 8);
|
||||||
|
SendBuff((char*)&header, sizeof(ServerPktHeader));
|
||||||
|
SendBuff((char*)&seed_, sizeof(seed_));
|
||||||
|
}
|
||||||
|
|
||||||
virtual void OnDisConnect() override
|
virtual void OnDisConnect() override
|
||||||
{
|
{
|
||||||
App::Instance()->AddIMMsg(IM_ClientSocketDisconnect,
|
App::Instance()->AddIMMsg(IM_ClientSocketDisconnect,
|
||||||
@ -134,6 +151,7 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
unsigned int seed_ = 0;
|
||||||
std::vector<unsigned char> key_;
|
std::vector<unsigned char> key_;
|
||||||
unsigned char send_i_ = 0;
|
unsigned char send_i_ = 0;
|
||||||
unsigned char send_j_ = 0;
|
unsigned char send_j_ = 0;
|
||||||
@ -149,6 +167,7 @@ static void CreateGameClientSocket(a8::TcpSession **p)
|
|||||||
|
|
||||||
static void GSListeneron_error(a8::TcpListener*, int type, int errorid)
|
static void GSListeneron_error(a8::TcpListener*, int type, int errorid)
|
||||||
{
|
{
|
||||||
|
abort();
|
||||||
a8::UdpLog::Instance()->Debug("GCListeneron_error %d %d", {type, errorid});
|
a8::UdpLog::Instance()->Debug("GCListeneron_error %d %d", {type, errorid});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -159,7 +178,11 @@ void GCListener::Init()
|
|||||||
tcp_listener_->on_error = GSListeneron_error;
|
tcp_listener_->on_error = GSListeneron_error;
|
||||||
|
|
||||||
tcp_listener_->bind_address = "0.0.0.0";
|
tcp_listener_->bind_address = "0.0.0.0";
|
||||||
|
#if 1
|
||||||
|
tcp_listener_->bind_port = 8086;
|
||||||
|
#else
|
||||||
tcp_listener_->bind_port = JsonDataMgr::Instance()->GetConf()->At("listen_port")->AsXValue();
|
tcp_listener_->bind_port = JsonDataMgr::Instance()->GetConf()->At("listen_port")->AsXValue();
|
||||||
|
#endif
|
||||||
tcp_listener_->Open();
|
tcp_listener_->Open();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -55,12 +55,6 @@ static void SavePerfLog()
|
|||||||
|
|
||||||
void App::Init(int argc, char* argv[])
|
void App::Init(int argc, char* argv[])
|
||||||
{
|
{
|
||||||
#if 0
|
|
||||||
{
|
|
||||||
Vector2D dir;
|
|
||||||
dir.Normalize();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
signal(SIGPIPE, SIG_IGN);
|
signal(SIGPIPE, SIG_IGN);
|
||||||
this->argc = argc;
|
this->argc = argc;
|
||||||
this->argv = argv;
|
this->argv = argv;
|
||||||
@ -72,7 +66,7 @@ void App::Init(int argc, char* argv[])
|
|||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
a8::XPrintf("masterserver starting instance_id:%d pid:%d game_id:%d\n", {instance_id, getpid(), GAME_ID});
|
a8::XPrintf("gameserver starting instance_id:%d pid:%d game_id:%d\n", {instance_id, getpid(), GAME_ID});
|
||||||
|
|
||||||
loop_mutex_ = new std::mutex();
|
loop_mutex_ = new std::mutex();
|
||||||
loop_cond_ = new std::condition_variable();
|
loop_cond_ = new std::condition_variable();
|
||||||
@ -89,7 +83,7 @@ void App::Init(int argc, char* argv[])
|
|||||||
uuid.SetMachineId(instance_id);
|
uuid.SetMachineId(instance_id);
|
||||||
GCListener::Instance()->Init();
|
GCListener::Instance()->Init();
|
||||||
|
|
||||||
a8::UdpLog::Instance()->Info("masterserver starting instance_id:%d pid:%d", {instance_id, getpid()});
|
a8::UdpLog::Instance()->Info("gameserver starting instance_id:%d pid:%d", {instance_id, getpid()});
|
||||||
{
|
{
|
||||||
int perf_log_time = 1000 * 60 * 5;
|
int perf_log_time = 1000 * 60 * 5;
|
||||||
if (getenv("is_dev_env")) {
|
if (getenv("is_dev_env")) {
|
||||||
@ -133,7 +127,7 @@ int App::Run()
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
a8::UdpLog::Instance()->Info("masterserver running", {});
|
a8::UdpLog::Instance()->Info("gameserver running", {});
|
||||||
last_run_tick_ = a8::XGetTickCount();
|
last_run_tick_ = a8::XGetTickCount();
|
||||||
int delta_time = 0;
|
int delta_time = 0;
|
||||||
while (!terminated) {
|
while (!terminated) {
|
||||||
@ -410,7 +404,7 @@ bool App::ParseOpt()
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return instance_id > 0 && node_id > 0;
|
return instance_id > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
long long App::NewUuid()
|
long long App::NewUuid()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user