64 lines
1.4 KiB
C++
64 lines
1.4 KiB
C++
#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
|