From a68691dc1f19d4505eb4a76612f1aa306eb1e316 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 11 Dec 2019 16:56:58 +0800 Subject: [PATCH] 1 --- cpp/protoutils.cc | 38 +++++++++++++++++++++++++++++++++++++- cpp/protoutils.h | 15 +++++++++++++++ 2 files changed, 52 insertions(+), 1 deletion(-) diff --git a/cpp/protoutils.cc b/cpp/protoutils.cc index d5a6157..92ea9b1 100644 --- a/cpp/protoutils.cc +++ b/cpp/protoutils.cc @@ -1,4 +1,4 @@ -#include +#include "precompile.h" #include "framework/cpp/protoutils.h" @@ -38,11 +38,18 @@ namespace f8 return 0; } std::string msgid_enum_name; + #ifdef MATCHVS + if (msgname[0] == 'C' && msgname[1] == 'M') { + msgid_enum_name = "kingsomevs.CMMessageId_e"; + } else if (msgname[0] == 'S' && msgname[1] == 'M') { + msgid_enum_name = "kingsomevs.SMMessageId_e"; + #else if (msgname[0] == 'C' && msgname[1] == 'M') { msgid_enum_name = "cs.CMMessageId_e"; } else if (msgname[0] == 'S' && msgname[1] == 'M') { msgid_enum_name = "cs.SMMessageId_e"; } else if (msgname[0] == 'S' && msgname[1] == 'S') { + #endif msgid_enum_name = "ss.SSMessageId_e"; } else { assert(false); @@ -78,6 +85,19 @@ namespace f8 msg.SerializeToArray(buff + sizeof(PackHead), packlen); } + void Net_PackMsgOld(unsigned short msgid, ::google::protobuf::Message& msg, std::string& out) + { + int packlen = msg.ByteSize(); + + out.resize(sizeof(PackHeadOld) + packlen); + char* buff = (char*)out.data(); + PackHeadOld* head = (PackHeadOld*)buff; + head->packlen = packlen; + head->msgid = msgid; + head->magiccode = MAGIC_CODE; + msg.SerializeToArray(buff + sizeof(PackHeadOld), packlen); + } + int Net_SendMsg(a8::TcpClient* tcp_client, unsigned seqid, unsigned short msgid, ::google::protobuf::Message& msg) { @@ -151,6 +171,22 @@ namespace f8 return sizeof(PackHead) + packlen; } + int Net_SendMsgOld(a8::TcpListener* tcp_listener, unsigned short socket_handle, unsigned int seqid, + unsigned short msgid, ::google::protobuf::Message& msg) + { + int packlen = msg.ByteSize(); + + char* buff = (char*)malloc(sizeof(PackHeadOld) + packlen); + PackHeadOld* head = (PackHeadOld*)buff; + head->packlen = packlen; + head->msgid = msgid; + head->magiccode = MAGIC_CODE; + msg.SerializeToArray(buff + sizeof(PackHeadOld), packlen); + tcp_listener->SendClientMsg(socket_handle, buff, sizeof(PackHeadOld) + packlen); + free(buff); + return sizeof(PackHeadOld) + packlen; + } + int Net_SendBigMsg(a8::TcpListener* tcp_listener, unsigned short socket_handle, unsigned int seqid, unsigned short msgid, ::google::protobuf::Message& msg) { diff --git a/cpp/protoutils.h b/cpp/protoutils.h index 92e3be2..9ae91b7 100644 --- a/cpp/protoutils.h +++ b/cpp/protoutils.h @@ -18,6 +18,14 @@ namespace a8 namespace f8 { + //老消息头部(matchvs) + struct PackHeadOld + { + unsigned short packlen; + unsigned short msgid; + unsigned int magiccode; + }; + //普通消息头部 struct PackHead { @@ -88,11 +96,16 @@ namespace f8 MsgHdr* Clone(); }; + #ifdef MATCHVS + const unsigned int MAGIC_CODE = 0xAABBCCAA; + #else const unsigned short MAGIC_CODE = (((unsigned short)'S') << 8) | ((unsigned short)'K'); + #endif int Net_GetMessageId(::google::protobuf::Message& msg); void Net_PackMsg(unsigned short msgid, ::google::protobuf::Message& msg, std::string& out); + void Net_PackMsgOld(unsigned short msgid, ::google::protobuf::Message& msg, std::string& out); int Net_SendMsg(a8::TcpClient* tcp_client, unsigned int seqid, unsigned short msgid, ::google::protobuf::Message& msg); int Net_SendMsg(a8::TcpClient2* tcp_client, unsigned int seqid, @@ -103,6 +116,8 @@ namespace f8 const char* msgbody, int msgbody_len); int Net_SendMsg(a8::TcpListener* tcp_tlistener, unsigned short socket_handle, unsigned int seqid, unsigned short msgid, ::google::protobuf::Message& msg); + int Net_SendMsgOld(a8::TcpListener* tcp_tlistener, unsigned short socket_handle, unsigned int seqid, + unsigned short msgid, ::google::protobuf::Message& msg); int Net_SendBigMsg(a8::TcpListener* tcp_tlistener, unsigned short socket_handle, unsigned int seqid, unsigned short msgid, ::google::protobuf::Message& msg); int Net_BroadcastMsg(a8::TcpListener* tcp_tlistener, unsigned int seqid,