ns.Write()
ns.Write()
ns.Write()
ns.Write()
ns.Write()
ns.Write()
写了6次
在服务端
NetworkStream stream = client.GetStream();
stream.Read();
stream.Read();
stream.Read();
stream.Read();
stream.Read();
stream.Read();
读6次,前4次读出的内容没错,第5次后面的数据全是错的。
莫非不能这样连续写,连续读吗?
20
你Read函数传入读取的字节数不一定是你实际读取到的字节数,这个参数只是保证你这次读取最多读取到的字节数
你必须要判断函数返回的实际读取到的字节数
//
// 摘要:
// 从 System.Net.Sockets.NetworkStream 读取数据。
//
// 参数:
// buffer:
// 类型 System.Byte 的数组,它是内存中用于存储从 System.Net.Sockets.NetworkStream 读取的数据的位置。
//
// offset:
// buffer 中开始将数据存储到的位置。
//
// size:
// 要从 System.Net.Sockets.NetworkStream 中读取的字节数。
//
// 返回结果:
// 从 System.Net.Sockets.NetworkStream 中读取的字节数。
//
// 异常:
// System.ArgumentNullException:
// buffer 参数为 null。
//
// System.ArgumentOutOfRangeException:
// offset 参数小于 0。 – 或 – offset 参数大于 buffer 的长度。 – 或 – size 参数小于 0。 – 或 – size
// 参数大于 buffer 的长度减去 offset 参数的值。 – 或 – 访问套接字时出错。 有关更多信息,请参见备注部分。
//
// System.IO.IOException:
// 基础 System.Net.Sockets.Socket 被关闭。
//
// System.ObjectDisposedException:
// System.Net.Sockets.NetworkStream 是关闭的。 – 或 – 从网络读取时出现错误。
public override int Read(byte[] buffer, int offset, int size);