add SendBigMsg
This commit is contained in:
parent
f66ba1b9a2
commit
dca17a2d72
@ -65,7 +65,8 @@ namespace f8
|
||||
msg.SerializeToArray(buff + sizeof(PackHead), packlen);
|
||||
}
|
||||
|
||||
int Net_SendMsg(a8::TcpClient* tcp_client, unsigned seqid, unsigned short msgid, ::google::protobuf::Message& msg)
|
||||
int Net_SendMsg(a8::TcpClient* tcp_client, unsigned seqid, unsigned short msgid,
|
||||
::google::protobuf::Message& msg)
|
||||
{
|
||||
int packlen = msg.ByteSize();
|
||||
assert(packlen < 1024 * 60);
|
||||
@ -83,6 +84,25 @@ namespace f8
|
||||
return sizeof(PackHead) + packlen;
|
||||
}
|
||||
|
||||
int Net_SendBigMsg(a8::TcpClient* tcp_client, unsigned seqid, unsigned short msgid,
|
||||
::google::protobuf::Message& msg)
|
||||
{
|
||||
int packlen = msg.ByteSize();
|
||||
assert(packlen < 1024 * 60);
|
||||
|
||||
char* buff = (char*)malloc(sizeof(f8::BigPackHead) + packlen);
|
||||
f8::BigPackHead* head = (f8::BigPackHead*)buff;
|
||||
head->packlen = packlen;
|
||||
head->msgid = msgid;
|
||||
head->seqid = seqid;
|
||||
head->magic_code = MAGIC_CODE;
|
||||
head->rpc_error_code = 0;
|
||||
msg.SerializeToArray(buff + sizeof(f8::BigPackHead), packlen);
|
||||
tcp_client->SendBuff(buff, sizeof(f8::BigPackHead) + packlen);
|
||||
free(buff);
|
||||
return sizeof(f8::BigPackHead) + packlen;
|
||||
}
|
||||
|
||||
int Net_SendMsg(a8::TcpListener* tcp_listener, unsigned short socket_handle, unsigned int seqid,
|
||||
unsigned short msgid, ::google::protobuf::Message& msg)
|
||||
{
|
||||
@ -102,6 +122,25 @@ namespace f8
|
||||
return sizeof(PackHead) + packlen;
|
||||
}
|
||||
|
||||
int Net_SendBigMsg(a8::TcpListener* tcp_listener, unsigned short socket_handle, unsigned int seqid,
|
||||
unsigned short msgid, ::google::protobuf::Message& msg)
|
||||
{
|
||||
int packlen = msg.ByteSize();
|
||||
assert(packlen < 1024 * 60);
|
||||
|
||||
char* buff = (char*)malloc(sizeof(f8::BigPackHead) + packlen);
|
||||
f8::BigPackHead* head = (f8::BigPackHead*)buff;
|
||||
head->packlen = packlen;
|
||||
head->msgid = msgid;
|
||||
head->seqid = seqid;
|
||||
head->magic_code = MAGIC_CODE;
|
||||
head->rpc_error_code = 0;
|
||||
msg.SerializeToArray(buff + sizeof(f8::BigPackHead), packlen);
|
||||
tcp_listener->SendClientMsg(socket_handle, buff, sizeof(f8::BigPackHead) + packlen);
|
||||
free(buff);
|
||||
return sizeof(f8::BigPackHead) + packlen;
|
||||
}
|
||||
|
||||
int Net_BroadcastMsg(a8::TcpListener* tcp_listener, unsigned int seqid,
|
||||
unsigned short msgid, ::google::protobuf::Message& msg)
|
||||
{
|
||||
@ -121,6 +160,25 @@ namespace f8
|
||||
return sizeof(PackHead) + packlen;
|
||||
}
|
||||
|
||||
int Net_BroadcastBigMsg(a8::TcpListener* tcp_listener, unsigned int seqid,
|
||||
unsigned short msgid, ::google::protobuf::Message& msg)
|
||||
{
|
||||
int packlen = msg.ByteSize();
|
||||
assert(packlen < 1024 * 60);
|
||||
|
||||
char* buff = (char*)malloc(sizeof(f8::BigPackHead) + packlen);
|
||||
f8::BigPackHead* head = (f8::BigPackHead*)buff;
|
||||
head->packlen = packlen;
|
||||
head->msgid = msgid;
|
||||
head->seqid = seqid;
|
||||
head->magic_code = MAGIC_CODE;
|
||||
head->rpc_error_code = 0;
|
||||
msg.SerializeToArray(buff + sizeof(f8::BigPackHead), packlen);
|
||||
tcp_listener->BroadcastMsg(buff, sizeof(f8::BigPackHead) + packlen);
|
||||
free(buff);
|
||||
return sizeof(f8::BigPackHead) + packlen;
|
||||
}
|
||||
|
||||
int Net_SendProxyCMsg(a8::TcpClient* tcp_client, unsigned short msgid, ::google::protobuf::Message& msg)
|
||||
{
|
||||
int packlen = msg.ByteSize();
|
||||
|
@ -27,6 +27,16 @@ namespace f8
|
||||
unsigned short rpc_error_code;
|
||||
};
|
||||
|
||||
//大包消息头部
|
||||
struct BigPackHead
|
||||
{
|
||||
int packlen;
|
||||
unsigned short msgid;
|
||||
unsigned int seqid;
|
||||
unsigned short magic_code;
|
||||
unsigned short rpc_error_code;
|
||||
};
|
||||
|
||||
//转发类消息头部
|
||||
struct ForwardPackHead
|
||||
{
|
||||
@ -82,12 +92,18 @@ namespace f8
|
||||
void Net_PackMsg(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_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, ::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 msgid, ::google::protobuf::Message& msg);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user