在流里读出数据后,需要将数据包大小缩短成有效大小,即 bytesRead 长度。

下面是 C# 端接收并解析数据的示例代码:

private void ReceiveMessage()
{
    stream = client.GetStream();
    int bytesRead;
    while (isKeepReading)
    {
        if (stream.CanRead)
        {
            buffer = new byte[client.ReceiveBufferSize];
            bytesRead = stream.Read(buffer, 0, client.ReceiveBufferSize);
            if (bytesRead > 0)
            {
                MemoryStream protoStream = new MemoryStream(buffer,0, bytesRead);
                Cas.Proto.DataMessage dataMessage = Cas.Proto.DataMessage.Parser.ParseFrom(protoStream);
                switch (dataMessage.Type)
                {
                    case DataMessage.Types.Type.Mesh:
	                    	Debug.Log("Mesh类型");
                        break;
                    default:
                        break;
                }
            }
        }
    }
}