这在传输大文件时,有一定可能 会提前变 false,导致 数据接收不全,
所以推荐使用 异步方式 BeginRead 来读取,要确认数据是否读取完毕,在发送端 添加封包方法
/// <summary>
/// 封包
/// </summary>
/// <param name="data"></param>
public byte[] Encode(byte[] data)
{
int tmp_len = data.Length+4;
byte[] tmp_lenData = BitConverter.GetBytes(tmp_len);
Debug.LogError("tmp_lenData: " + tmp_lenData.Length);
List<byte> tmp_byte = new List<byte>();
tmp_byte.AddRange(tmp_lenData);
tmp_byte.AddRange(data);
return tmp_byte.ToArray();
}
前4个字节是数据的总长度,使用BitConverter.ToInt32(),来获取,
然后就是确认接收数据的长度和数据总长度了。基本就这样。

该博客讨论了在传输大文件时可能出现的数据接收不全问题,建议使用异步的BeginRead方法来确保完整读取。作者提出通过在发送端添加封包方法,前4个字节存储数据总长度,接收端通过这个长度验证是否已接收完整数据。这种方法提高了数据传输的可靠性。
2602

被折叠的 条评论
为什么被折叠?



