#pragma once class Player; namespace google { namespace protobuf { class Message; } } namespace a8 { class TcpClient; class AsyncTcpClient; class TcpListener; } namespace f8 { //老消息头部(matchvs) struct PackHeadOld { unsigned short packlen; unsigned short msgid; unsigned int magiccode; }; //普通消息头部 struct PackHead { unsigned short packlen; unsigned short msgid; unsigned int seqid; unsigned short magic_code; unsigned short ext_len; }; //大包消息头部 struct BigPackHead { int packlen; unsigned short msgid; unsigned int seqid; unsigned short magic_code; unsigned short rpc_error_code; }; //转发类消息头部 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; }; struct WSProxyPackHead_C { unsigned short packlen; unsigned short msgid; unsigned int seqid; unsigned short magic_code; unsigned short socket_handle; unsigned long ip_saddr; }; struct WSProxyPackHead_S { unsigned short packlen; unsigned short msgid; unsigned int seqid; unsigned short magic_code; unsigned short rpc_error_code; unsigned short socket_handle; unsigned short ext_len; }; 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; MsgHdr* Clone(); static void Destroy(MsgHdr* hdr); }; #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(const ::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, const ::google::protobuf::Message& msg); int Net_SendMsgOld(a8::TcpClient* tcp_client, unsigned int seqid, unsigned short msgid, ::google::protobuf::Message& msg); int Net_SendMsg(a8::AsyncTcpClient* tcp_client, unsigned int seqid, unsigned short msgid, const ::google::protobuf::Message& msg); int Net_SendBigMsg(a8::TcpClient* tcp_client, unsigned int seqid, unsigned short msgid, ::google::protobuf::Message& msg); int Net_SendMsg(a8::TcpClient* tcp_client, unsigned int seqid, unsigned short msgid, const char* msgbody, int msgbody_len); int Net_SendMsg(a8::TcpListener* tcp_tlistener, unsigned short socket_handle, unsigned int seqid, unsigned short msgid, const ::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, unsigned short msgid, ::google::protobuf::Message& msg); int Net_BroadcastBigMsg(a8::TcpListener* tcp_tlistener, unsigned int seqid, unsigned short msgid, ::google::protobuf::Message& msg); int Net_SendProxyCMsg(a8::TcpClient* tcp_client, unsigned short socket_handle, unsigned short msgid, ::google::protobuf::Message& msg); int Net_SendProxyCMsg(a8::AsyncTcpClient* tcp_client, unsigned short socket_handle, unsigned short msgid, ::google::protobuf::Message& msg); int Net_SendProxyMsg(a8::TcpListener* tcp_tlistener, int socket_handle, unsigned int seqid, unsigned short error_code, unsigned short msgid, ::google::protobuf::Message& msg); int Net_SendProxyMsg(a8::TcpListener* tcp_tlistener, int socket_handle, unsigned int seqid, unsigned short error_code, unsigned short msgid, const std::string& data); }