這段代碼是 獲取http 的圖片數(shù)據(jù),可是總是出現(xiàn)目標(biāo) 數(shù)組程度不夠用?
不知道怎么回事?
/// <summary>
/// 得到網(wǎng)頁原始字節(jié)數(shù)組
/// </summary>
/// <param name="strHost">主機(jī)頭</param>
/// <param name="getBytes">Get字符串的字節(jié)數(shù)組形式</param>
/// <param name="iTotalCount">接受的字節(jié)數(shù)</param>
/// <returns>原始網(wǎng)頁字節(jié)數(shù)組</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)
{
//重新生成個(gè)更大的數(shù)組
byte[] temp = new byte[responseBytes.Length * 2];
//原數(shù)據(jù)copy到新數(shù)組中
responseBytes.CopyTo(temp, 0);
buffer.CopyTo(temp, iTotalCount - 1);
responseBytes = temp; //引用變更
}
else
{
buffer.CopyTo(responseBytes, iTotalCount - 1);
}
iTotalCount += iNumber; //索引位置增加
}
return responseBytes;
}
- 2 回答
- 0 關(guān)注
- 562 瀏覽
添加回答
舉報(bào)
0/150
提交
取消