110,566
社区成员
发帖
与我相关
我的任务
分享
private bool ReceiveStream(NetworkStream stream, ref byte[] origBuf, out byte[] outBuf)
{
outBuf = null;
if (!stream.DataAvailable)
{
return false;
}
List<Byte> bufList = new List<byte>();
int total = 0;
while (stream.DataAvailable)
{
int len = this.TryReceive(stream, origBuf, 0, m_BufSize);
if (len <= 0)
{
break;
}
bufList.AddRange(origBuf);
total += len;
if (len < m_BufSize)
{
bufList.RemoveRange(total, m_BufSize - len);
break;
}
}
if (total == 0)
{
return false;
}
this.ReWaitingTimer();
outBuf = bufList.ToArray();
return true;
}
/// <summary>
/// TryReceive
/// </summary>
/// <param name="stream"></param>
/// <param name="origBuf"></param>
/// <param name="outBuf"></param>
/// <returns></returns>
private int TryReceive(NetworkStream stream, byte[] buffer, int offset, int size)
{
//try
//{
//}
//catch (IOException)
//{
//}
//Array.Clear(buffer, offset, size);
return stream.Read(buffer, offset, size);
}