#ifndef COMMON_PROTOUTILS_H #define COMMON_PROTOUTILS_H //普通消息头部 struct PackHead { unsigned short packlen; unsigned short msgid; unsigned int magiccode; }; //转发类消息头部 struct ForwardPackHead { unsigned short packlen; unsigned short sockethandle; unsigned short msgid; unsigned short src_msgid; unsigned int src_seqid; unsigned long ip_saddr; unsigned int sign; }; class Player; struct MsgHdr { unsigned int seqid; unsigned short msgid; int socket_handle; unsigned long ip_saddr; const char* buf; int buflen; int offset; Player *hum = nullptr; const void* user_data = nullptr; }; const unsigned int MAGIC_CODE = 0xAABBCCAA; namespace google { namespace protobuf { class Message; } } namespace a8 { class TcpClient; class TcpListener; } int Net_GetMessageId(::google::protobuf::Message& msg); void Net_PackMsg(unsigned short msgid, ::google::protobuf::Message& msg, std::string& out); int Net_SendMsg(a8::TcpClient* tcp_client, unsigned short msgid, ::google::protobuf::Message& msg); int Net_SendMsg(a8::TcpClient* tcp_client, unsigned short msgid, const char* msgbody, int msgbody_len); int Net_SendMsg(a8::TcpListener* tcp_tlistener, unsigned short socket_handle, unsigned short msgid, ::google::protobuf::Message& msg); #endif