1
This commit is contained in:
parent
f6cae707ed
commit
40d9fc3fca
@ -45,6 +45,7 @@ public:
|
||||
virtual void Reset() override
|
||||
{
|
||||
a8::MixedSession::Reset();
|
||||
seed_ = rand();
|
||||
send_i_ = 0;
|
||||
send_j_ = 0;
|
||||
recv_i_ = 0;
|
||||
@ -94,18 +95,23 @@ public:
|
||||
#endif
|
||||
bool warning = false;
|
||||
while (buflen - offset >= sizeof(ClientPktHeader)) {
|
||||
ClientPktHeader* p = (ClientPktHeader*)&buf[offset];
|
||||
if (buflen - offset < sizeof(ClientPktHeader) + p->size) {
|
||||
ClientPktHeader header = *((ClientPktHeader*)&buf[offset]);
|
||||
DecryptRecv((unsigned char*)&header, sizeof(header));
|
||||
header.size =
|
||||
((header.size & 0x00FF) << 8) +
|
||||
((header.size & 0xFF00) >> 8);
|
||||
if (buflen - offset < sizeof(ClientPktHeader) + header.size) {
|
||||
break;
|
||||
}
|
||||
header.size -= 4;
|
||||
App::Instance()->AddSocketMsg(SF_GameClient,
|
||||
socket_handle,
|
||||
saddr,
|
||||
p->cmd,
|
||||
header.cmd,
|
||||
0,
|
||||
&buf[offset + sizeof(ClientPktHeader)],
|
||||
p->size);
|
||||
offset += sizeof(ClientPktHeader) + p->size;
|
||||
header.size);
|
||||
offset += sizeof(ClientPktHeader) + header.size;
|
||||
}
|
||||
|
||||
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
|
||||
{
|
||||
App::Instance()->AddIMMsg(IM_ClientSocketDisconnect,
|
||||
@ -134,6 +151,7 @@ public:
|
||||
}
|
||||
|
||||
private:
|
||||
unsigned int seed_ = 0;
|
||||
std::vector<unsigned char> key_;
|
||||
unsigned char send_i_ = 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)
|
||||
{
|
||||
abort();
|
||||
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_->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();
|
||||
#endif
|
||||
tcp_listener_->Open();
|
||||
}
|
||||
|
||||
|
@ -55,12 +55,6 @@ static void SavePerfLog()
|
||||
|
||||
void App::Init(int argc, char* argv[])
|
||||
{
|
||||
#if 0
|
||||
{
|
||||
Vector2D dir;
|
||||
dir.Normalize();
|
||||
}
|
||||
#endif
|
||||
signal(SIGPIPE, SIG_IGN);
|
||||
this->argc = argc;
|
||||
this->argv = argv;
|
||||
@ -72,7 +66,7 @@ void App::Init(int argc, char* argv[])
|
||||
}
|
||||
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_cond_ = new std::condition_variable();
|
||||
@ -89,7 +83,7 @@ void App::Init(int argc, char* argv[])
|
||||
uuid.SetMachineId(instance_id);
|
||||
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;
|
||||
if (getenv("is_dev_env")) {
|
||||
@ -133,7 +127,7 @@ int App::Run()
|
||||
return 0;
|
||||
}
|
||||
int ret = 0;
|
||||
a8::UdpLog::Instance()->Info("masterserver running", {});
|
||||
a8::UdpLog::Instance()->Info("gameserver running", {});
|
||||
last_run_tick_ = a8::XGetTickCount();
|
||||
int delta_time = 0;
|
||||
while (!terminated) {
|
||||
@ -410,7 +404,7 @@ bool App::ParseOpt()
|
||||
break;
|
||||
}
|
||||
}
|
||||
return instance_id > 0 && node_id > 0;
|
||||
return instance_id > 0;
|
||||
}
|
||||
|
||||
long long App::NewUuid()
|
||||
|
Loading…
x
Reference in New Issue
Block a user