144 lines
4.7 KiB
C++
144 lines
4.7 KiB
C++
#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);
|
|
|
|
}
|