Hello everyone , firstly sorry for my bad english I have a little questions how to get sended bytes size in client side if bytes is sended from server side ? example :
I send from server some packet thanks to this function :
public void sendToClient(NMSG msg, int channelId, int connectionId)
{
if (!PacketHandler.packets.Contains(msg.GetType()))
{
Debug.Log("packet not registered");
return;
}
byte error;
byte[] buffer;
MemoryStream stream = new MemoryStream();
BinaryWriter writer = new BinaryWriter(stream);
writer.Write(msg.getPacketId());
writer.Write(msg.getUUID());
msg.WriteToStream(writer);
if(msg.isPacketWithResult)
{
PacketHandler.packetsWithResult.Add(msg.getUUID(),msg);
}
//Debug.Log(stream.Position + " bytes sended.");
buffer = stream.ToArray();
int bufferSize = buffer.Length;
NetworkTransport.Send(hostId, connectionId, channelId, buffer, bufferSize, out error);
}
I want to obtain sended packet size in server side :
void Update()
{
if (!isConnected) return;
int recHostId;
int connectionId;
int channelId;
int dataSize;
byte[] recBuffer = new byte[//sended packet size];
int bufferSize = recBuffer.Length;
byte error;
NetworkEventType recData;
do
{
recData = NetworkTransport.Receive(out recHostId, out connectionId, out channelId, recBuffer, bufferSize, out dataSize, out error);
recBuffer = new byte[dataSize];
bufferSize = dataSize;
switch (recData)
{
case NetworkEventType.Nothing:
break;
case NetworkEventType.ConnectEvent:
this.connectionId = connectionId;
LocalUserData localData = Main.instance.localData;
if (localData.haveSession())
{
Client client = getClient();
client.sendToServer(new NMSG_ConnectAccount(2, localData.getUserId()), client.reliableChannel);
}
Debug.Log("Connection to server etablished!");
break;
case NetworkEventType.DisconnectEvent:
Debug.Log("Disconnected from server!");
break;
case NetworkEventType.DataEvent:
StartCoroutine(msgReader(recBuffer));
break;
}
}
while (recData != NetworkEventType.Nothing);
}
because I switch from reliable channel to reliable fragmented channel
according to the size of bytes sent.
I need your help.
Thanks.