简单实现Http代理工具

本来意图是想写个工具放到服务器里代理一下上秋秋的。

没想到N台(电信/联通/移动)的服务器都把端口全封了。

所以以下代码是在本地测试代理网页访问通过。

 

说下思路再上代码及下载:

其实一句话就是:产生两个Soket,一个负责接收请求和回发请求,另一个负责中转的去请求和接收。

重点一句话就是:每个请求产生一个线程处理,处理时关键是的延时处理(不然数据接收不全)。

 

现在上代码,Proxy自定义类:

 

Proxy

 

 

在控制台里调用:

 

代码

 

 

本人测试:

在打开IE-》工具->Internet选项->链接->局域网设置->代理连接-》输入IP和端口号

访问网站,查看控制台输出消息,页面访问正常,测试通过。

 

本来想测试下QQ代理,无奈本地已被封,服务器也没端口可用。有空回家再测了。

 

提供代码下载

版权声明:本文原创发表于博客园,作者为路过秋天,原文链接:

http://www.cnblogs.com/cyq1162/archive/2010/06/03/1750587.html

时间: 2024-12-22 12:45:15

简单实现Http代理工具的相关文章

简单实现Http代理工具--端口复用与QQ代理

话说上一次做完http代理工具后,没有测试QQ代理,回家试了一下,做了一下简单补充,并测试通过.   上次的文章提到,所有公司的服务器端口都封了,只剩下几个通讯的已经正在便用的. 于是,在本地XP下试了一下端口劫持,也称端口复用.抢占80端口. 关键代码就一句:tcplistener.Server.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true); 在本地实现抢占80端口后,所有的http

简单实现Http代理工具--完善支持QQ代理

昨天用上次文章里的代理,测试代理访问Web.QQ.com,发现访问不了,总是返回400错误. 于是开始测试: 1.检测请求头->去掉代理头->无效 2.用CCProxy->访问web.qq.com正常通过 3.用CCProxy做二级代码即:http请求->CCProxy->TCPProxy(自己的程序) 此时再转发请求头-> 无效 4.去掉代理->直接请求->获取请求头->记录下来先 TCPProxy->比较,修改请头头信息->发送->

Http 代理工具 实战 支持网页与QQ代理

        private void CloseSocket(Socket socket)         {             CloseSocket(socket, true);         }         private void CloseSocket(Socket socket, bool shutdown)         {             if (socket != null)             {                 if (shut

跨平台web调试代理工具---whistle

whistle是基于Node实现的跨平台web调试代理工具,支持windows.mac.linux等所有安装了Node的操作系统,可以部署在本地机器.虚拟机或远程服务器,并通过本地网页查看或修改HTTP.HTTPS.Websocket请求(响应)的基本信息.头部及内容等. whistle把每一类操作对应一个协议,每个修改操作抽象成一个uri,通过简单设置请求url到操作uri的对应关系,实现通过配置操作请求,支持通过扩展协议新增功能:具有配置灵活,功能强大等特点. 配置界面及操作请参考:http

在Python的Tornado框架中实现简单的在线代理的教程

  这篇文章主要介绍了在Python的Tornado框架中实现简单的在线代理的教程,代理功能是一个常见的网络编程实现,需要的朋友可以参考下 实现代理的方式很多种,流行的web服务器也大都有代理的功能,比如http://www.tornadoweb.cn用的就是nginx的代理功能做的tornadoweb官网的镜像. 最近,我在开发一个移动运用(以下简称APP)的后台程序(Server),该运用需要调用到另一平台产品(Platform)的API.对于这个系统来说,可选的一种实现方式方式是APP同时

phptags tag tidier 1.0发布 一个简单的命令行工具

phptags是一个简单的命令行工具用于自动重写PHP打开和关闭的标签.它可以在短的和长的开放标签之前进行转换,添加漏掉的关闭标签或删除它们,并且可以调整行距或在尾部添加空格.它利用正则表达式或编译器. phptags tag tidier 1.0此版本已还原UTF-8依赖的空格重写.在标记编译器模式,间距现在可以在更多的情况下保存.一个针对PHP5.2兼容性修补程序已被应用. 下载地址: phptags-1.0.deb&http://www.aliyun.com/zixun/aggregati

自己写了一个最简单的文件复制工具,但是却不能复制,请大家帮忙看看

问题描述 自己写了一个最简单的文件复制工具,但是却不能复制,请大家帮忙看看usingSystem;usingSystem.IO;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;namespace文件复制移动删除{publicpartia

scit 0.21发布 简单的持续集成工具

scit是Simple Continuous Integration Tools的缩写,是一个简单的持续集成工具,用来建立和一个自动测试系统组成的Perl和预期脚本的利用,适用于大多数的Unix操作系统的常用工具.其设计目的是在提供了一整套功能的同时还保持它独特轻巧的特性,目前的版本带有一个命令行的用户界面和部分HTML用户界面.它能够运行在最最进的硬件上,一部份的开发和测试已经在诺基亚N900手机的同一单元上运行. scit 0.21版本修复了试图阻止本地slaves所造成的错误.svn_sc

C#网络爬虫代码分享 C#简单的爬取工具_C#教程

公司编辑妹子需要爬取网页内容,叫我帮忙做了一简单的爬取工具 这是爬取网页内容,像是这对大家来说都是不难得,但是在这里有一些小改动,代码献上,大家参考 private string GetHttpWebRequest(string url) { HttpWebResponse result; string strHTML = string.Empty; try { Uri uri = new Uri(url); WebRequest webReq = WebRequest.Create(uri);