这段代码是 获取http 的图片数据,可是总是出现目标 数组程度不够用?
不知道怎么回事?
/// <summary>
/// 得到网页原始字节数组
/// </summary>
/// <param name="strHost">主机头</param>
/// <param name="getBytes">Get字符串的字节数组形式</param>
/// <param name="iTotalCount">接受的字节数</param>
/// <returns>原始网页字节数组</returns>
private byte[] GetHtmlOriginByte(string strHost, int port, byte[] getBytes, out int iTotalCount)
{
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.Connect(strHost, port);
socket.Send(getBytes);
byte[] buffer = new byte[256];
int iNumber = socket.Receive(buffer, buffer.Length, SocketFlags.None);
iTotalCount = iNumber;
byte[] responseBytes = new byte[iTotalCount + iNumber];
buffer.CopyTo(responseBytes, 0);
while (iNumber > 0)
{
iNumber = socket.Receive(buffer, buffer.Length, SocketFlags.None);
if (iTotalCount + iNumber >= responseBytes.Length)
{
//重新生成个更大的数组
byte[] temp = new byte[responseBytes.Length * 2];
//原数据copy到新数组中
responseBytes.CopyTo(temp, 0);
buffer.CopyTo(temp, iTotalCount - 1);
responseBytes = temp; //引用变更
}
else
{
buffer.CopyTo(responseBytes, iTotalCount - 1);
}
iTotalCount += iNumber; //索引位置增加
}
return responseBytes;
}
- 2 回答
- 0 关注
- 546 浏览
添加回答
举报
0/150
提交
取消