这在传输大文件时,有一定可能 会提前变 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(),来获取,
然后就是确认接收数据的长度和数据总长度了。基本就这样。