http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 3183|回复: 2

[代理IP] socket软件支持http代理的问题

[复制链接]
发表于 2014-6-8 16:47:57 | 显示全部楼层 |阅读模式
最近做了一个winform程序,基于Socket通讯,有一个服务器端,客户端用来接收服务器信息,同时也可以发送信息到服务器端,和QQ有点类似
现在的问题是,企业中用的是局域网上网的,上网的方式是在IE里设置http代理,有一个IP和一个端口

我的winform程序在这样的网络环境中无法连接到服务器

现在的问题是我的winform socket通讯怎么能支持http代理,像QQ一样,有一个设置,如下图,我要的就是这个效果。
QQ截图20140608164639.png






1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2014-6-9 08:33:20 | 显示全部楼层
[C#] 纯文本查看 复制代码
using (Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP))
{
    IPHostEntry entry = Dns.GetHostEntry(fullUrlAddress);
    socket.ReceiveTimeout = 3000;
    socket.Connect(entry.AddressList[0], 80);

    string request = string.Empty;
    string build_request = string.Empty;
    if (cookieJar.Count != 0)
    {
        request = "GET {0} HTTP/1.1\r\nHost: {1}\r\nUser-Agent: Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nAccept-Language: en-us,en;q=0.5\r\nAccept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\nConnection: keep-alive\r\nReferer: {0}\r\nCookie: {2}\r\n\r\n";
        build_request = string.Format(request, requestedUri.AbsoluteUri, requestedUri.Host, GetCookies(requestedUri));
    }
    else
    {
        request = "GET {0} HTTP/1.1\r\nHost: {1}\r\nUser-Agent: Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nAccept-Language: en-us,en;q=0.5\r\nAccept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\nConnection: keep-alive\r\nReferer: {0}\r\nCookie: {2}\r\n\r\n";
        build_request = string.Format(request, requestedUri.AbsoluteUri, requestedUri.Host, "PREF=ID=19495678a6a3dd6e:U=c5ce8e4e3f61da69:FF=0:TM=1311310634:LM=1311310636:S=gbV7hD2dPfycsf8Q; NID=49=dN3QceFFBFxwsCXM43HCRJF_oxoBpUHuUWt2tpoofEDFcRhj7TWWV4EFQNuVYP1GhyBAsQr3oOeohsJp31x8kb_iXiGcQFh1a3IFsPTNKjzJv_NgSK8ssG956PJO7jH-");
    }

    byte[] data = Encoding.UTF8.GetBytes(build_request);
    socket.Send(data, data.Length, 0);

    int bytes = 0;
    byte[] bytesReceived = new byte[10240];
    string currentBatch = string.Empty;

    try
    {
        do
        {
            bytes = socket.Receive(bytesReceived);
            currentBatch = Encoding.ASCII.GetString(bytesReceived, 0, bytes);
            responseString.Append(currentBatch);
        }
        while (bytes > 0);
    }
    catch (Exception)
    {
    }

    socket.Close();
}

发表于 2014-6-9 08:33:47 | 显示全部楼层
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-5-17 11:29

© 2014-2021

快速回复 返回顶部 返回列表