【发布时间】:2017-12-10 12:01:26
【问题描述】:
我有一个从套接字读取数据的函数。
public int getResp(byte[] Buff, ref int rxBytes)//Buff is byte array of length 150000 bytes
{
while (socet.Available < rxBytes)//rxBytes = 150000
{
int socketAvaildata = socet.Available;
Thread.Sleep(1000);
if (socketAvaildata == socet.Available)
break;
}
try
{
//Thread.Sleep(100);
rxBytes = socet.Available;
if (rxBytes > 0)
{
socet.Receive(Buff, rxBytes, 0);
return rxBytes;
}
}
catch (Exception ex)
{
}
return -1;
}
这个函数在我们要读取小数据的时候很好用,但是当我们要读取大数据(超过100000字节)时,它只返回一部分数据。在 dubug 模式下,当 socet.Available = 65536 时,我检查了控制到达 break 。
那么它是我们可以阅读的最大限制还是我做错了什么?
【问题讨论】:
标签: c# sockets networking