networkstream接受數據
#region ReceiveData
//从网络读取指定长度的数据
//从网络读取指定长度的数据 ,存放在buff中
public static byte[] ReceiveData(NetworkStream stream, int BufferSize)
{
List<byte> list = new List<byte>();
byte[] buffer = new byte[BufferSize]; // 开辟缓冲区
int i = 0;
do
{
int len = stream.Read(buffer, 0, BufferSize);
if(len == BufferSize)
{
list.AddRange(buffer);
i = 1;
}
else
{
// 这里说明已经读取到流的末尾了,已没有 BufferSize 大小了
// 一个一个的放入集合
for(int index = 0; index <= len; index++)
list.Add(buffer[index]);
i=0 ;
}
} while (i==1);
return list.ToArray();
}
#endregion
#region recvstring
public string recvstring(NetworkStream stream, int BufferSize)
{
StringBuilder recv = new StringBuilder();
byte[] buf = new byte[BufferSize];
int recvCnt = 0;
while (true)
{
recvCnt =stream.Read(buf, 0, buf.Length);
recv.Append(System.Text.Encoding.ASCII.GetString(buf, 0, recvCnt));
if (recvCnt != 1024)
break;
}
return recv.ToString();
}
#endregion
posted on 2009-05-21 17:18 peter.deng 阅读(246) 评论(1) 编辑 收藏
