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

来源:互联网 发布:php电子书下载 编辑:程序博客网 时间:2024/05/02 17:36
以前使用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();
}
原创粉丝点击