C# Socket同步抓取大页面方法

以前使用C# Socket抓取大页面时,接收到的html代码不完整,经过测试下面的代码效果还不错!

//从Socket接收信息
public static String Recv(Socket sock, Encoding encode)
{
    Byte[] buffer = new Byte[8192];
    StringBuilder sb = new StringBuilder();

    Thread.Sleep(2000);//根据页面响应时间进行微调
    Int32 len = sock.Receive(buffer);
    sb.Append(encode.GetString(buffer, 0, len));           

    while (sock.Available > 0)
    {
        Thread.Sleep(50);//也可以视情况微调
        Array.Clear(buffer, 0, buffer.Length);
        len = sock.Receive(buffer);
        sb.Append(encode.GetString(buffer, 0, len));
    }

    return sb.ToString();
}

你可能感兴趣的:(C# Socket同步抓取大页面方法)