public static string Remaning(NetworkStream networkStream)
{
string msg = string.Empty;
int headSize = 4; //包头长度
int bufferSize = 20; //缓冲区长度
byte[] headData = new byte[headSize]; //包头数据
byte[] bufferData = new byte[bufferSize]; //缓冲区数据
networkStream.Read(headData, 0, headData.Length); //读取包长度
int dataSize = BitConverter.ToInt32(headData, 0); //数据总长度
byte[] recvData = new byte[dataSize]; //接收完整数据的缓冲区
while (dataSize > 0)
{
//需要接收的数据大于缓冲区,则按缓冲区大小接收,反之按照剩余的数据大小进行接收
int offset = dataSize < bufferSize ? dataSize : bufferSize;
byte[] readData = new byte[offset];
int readSize = 0; //读取数据的大小
readSize = networkStream.Read(readData, 0, offset);//将接收到的字节数保存
readData.CopyTo(recvData, recvData.Length - dataSize);
dataSize -= readSize;
}
msg = Encoding.UTF8.GetString(recvData, 0, recvData.Length);
Console.WriteLine("MSG:" + msg);
return msg;
}