从JDK15开始,Java在javanet包下提供了Proxy和ProxySelector两个类,其中Proxy代表一个代理服务器,可以在打开URLConnection连接时指定所用的Proxy实例,也可以在创建Socket连接时指定Proxy实例。而ProxySelector代表一个代理选择器,它提供了对代理服务器更加灵活的控制,它可以对>
代理服务器的功能就是代理网络用户去取得网络信息。我们使用网络浏览器直接连接其他Internet站点取得网络信息时,通常需要发送Request请求来等到响应。代理服务器是介于浏览器和Web服务器之间的一台服务器,有了它之后,浏览器不是直接到Web服务器去取得网页数据而是向代理服务器发出请求,Request请求会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并送回给网络浏览器。而且,大部分代理服务器都具有缓冲的功能,就好像一个大的Cache,它有很大的存储空间,它不断将新取得的数据储存到它本机的存储器上,如果浏览器所请求的数据在它本机的存储器上已经存在而且是最新的,那么它就不重新从Web服务器取数据,而直接将存储器上的数据传送给用户的浏览器,这样就能显著提高浏览速度和效率。归纳起来代理服务器主要提供如下两个功能:
突破自身IP限制,对外隐藏自身IP地址。突破IP限制包括访问国外受限站点,访问国内特定单位、团体的内部资源。
提高访问速度,代理服务器提供的缓冲功能可以避免每个用户都直接访问远程主机,从而提高客户端访问速度。
1751 直接使用Proxy创建连接
Proxy有如下一个构造器:Proxy(ProxyType type, SocketAddress sa):创建表示代理服务器的Proxy对象。而sa参数指定代理服务器的地址,其中type是该代理服务器的类型,该服务器类型有如下三种:
(1)ProxyTypeDIRECT:表示直接连接或缺少代理。
(2)ProxyType>
(3)ProxyTypeSOCKS:表示 SOCKS(V4 或 V5)代理。
一旦创建了Proxy对象之后,程序就可以在使用URLConnection打开连接时,或创建Socket连接时传入一个Proxy对象,作为本次连接所使用的代理服务器。
其中URL包含了一个URLConnection openConnection(Proxy proxy)方法,该方法使用指定的代理服务器来打开连接;而Socket则提供了一个Socket(Proxy proxy)构造器,该构造器使用指定的代理服务器创建一个没有连接的Socket对象。
下面以URLConnection为例来介绍如何在URLConnection中使用代理服务器。
程序清单:codes/17/17-5/ProxyTestjava
上面代码第一行粗体字代码创建了一个Proxy对象,第二行粗体字代码就是用Proxy对象来打开URLConnection连接。除此之外,该程序的其他地方就是对URLConnection的使用了。由此可见, JDK15提供了对代理服务器很好的支持。
1752 使用ProxySelector选择代理服务器
前面介绍的直接使用Proxy对象可以在打开URLConnection或Socket时指定代理服务器,使用这种方式需要每次打开连接都显式设置代理服务器。如果想让系统打开连接时总是具有默认的代理服务器,则可以使用javanetProxySelector,它可以它根据不同的连接使用不同的代理服务器。
系统默认的ProxySelector会检测各种系统属性和URL协议,然后决定怎样连接不同的主机。当然,程序也可以调用ProxySelector类的setDefaultI()静态方法来设置默认代理服务器,也可以调用getDefault()方法获得系统当前默认的代理服务器。
程序可以通过System类来设置系统的代理服务器属性,关于代理服务器常用的属性名有如下三个:
>
>
>
下面程序示范了通过改变系统属性来改变默认的代理服务器。
程序清单:codes/17/17-5/ ProxySelectorTestjava
上面程序中三行粗体字代码设置Java打开>
运行上面程序,将会看到程序长时间等待,因为192168096通常并不是有效的代理服务器(当然,如果读者运行的机器恰好可以使用地址为192168096的代理服务器又另当别论)。
系统提供了默认的ProxySelector子类作为代理选择器,开发者可以实现自己的代理选择器,程序可以通过继承ProxySelector来实现自己的代理选择器。继承ProxySelector需要重写两个方法:
List<Proxy> select(URI uri):实现该方法让代理选择器根据不同的URI来使用不同的代理服务器,该方法就是代理选择器管理网络连接使用代理服务器的关键。
connectFailed(URI uri, SocketAddress sa, IOException ioe):当系统通过默认的代理服务器建立连接失败后,代理选择器将会自动调用该方法。通过重写该方法可以对连接代理服务器失败的情形进行处理。
系统默认的代理服务器选择器也重写了connectFailed方法,它重写该方法的处理策略是:当系统设置的代理服务器失败时,默认代理选择器将会采用直连的方式连接远程资源,所以当运行上面程序等待了足够长时间时,程序依然可以打印出该远程资源的所有内容。
在用户启用了代理服务器作为连接Internet的方式后,仍然不能通过IE浏览器访问站点,还必须在启用了代理服务器功能后,在本机的TCP/IP协议中指定该代理服务器的IP地址,这样IE浏览器才可以找到代理服务器并通过它进入Internet。设置代理服务器的IP地址的 *** 作也可以通过注册表来完成。 (1)打开注册表编辑器。 (2)进入HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings子键。 (3)双击右窗口中的ProxyServer,将数值设为代理服务器的IP地址和端口号,格式为:19216801:80。 (4)完成设置后,重新启动计算机即可使设置生效。1 在主屏幕中按"系统设置",进入系统设置屏幕;2 在系统设置屏幕中找到并点"浏览器设置",进入WAP功能设置屏幕;
3 点"代理服务器1"(或"代理服务器2","代理服务器3"),进入相应设置屏幕可以分别设置代理服务器;
4 分别点各项资料的输入栏,进入相应的数字输入屏幕,输入资料(中国移动网关IP:010000000172端口号9201,接入号码是172);
5 正确输入所有资料后,按"确定",回到浏览器设置屏幕;
6 再点"数据呼叫信息",进入数据呼叫屏幕;分别点各项资料的输入栏,进入相应的数字输入屏幕,输入资料; 电话号码:例如:172 用户名:WAP;密码:WAP例如:显示为"";波特率:9600;线路类型:调制解调器;连接类型:透明
7 正确输入所有资料后,按"确定",回到设置屏幕,按"确定";
8 关闭设置打开浏览器。
所有的参数改变在重新开机后生效,这样就完成了WAP功能的设置;在主屏幕中按"浏览器",即可开始访问因特网。要设置代理服务器,必须先知道代理服务器地址和端口号,然后在ie或nc的代理服务器设置栏中填入相应地址和端口号就可以了。假设 有一个代理服务器的地址是proxynetnet,端口号是3000,在ie中的配置方法是使用查看菜单的internet选项/连接/代理服务器,然后在通过代理服务器访问internet选项前面的复选框中打上钩,在地址框中填入代理服务器地址,如本例中假设代理服务器地址是proxynetnet,再在端口框中填上端口号3000,点一下最下方的应用按钮,再点确定,设置完成。下次再使用ie时用户就会发现,无论 浏览什么网站,ie总是先与代理服务器连接。用nc的话,设置稍繁一点。使用edit菜单下的preferences菜单项,再选择advanced下的proxies,此时在右侧proxies选项中选择第二项manral proxy configuration,再点其右边的view…按钮,就会出现代理服务器的配置界面,在代理服务器地址和端口号栏中填入相应的内容,点击ok,退回到参数设置窗口,再点击ok,代理服务器的设置工作就完成了。当客户再次浏览网页时,就会自动向 设定的代理服务器发出申请,并得到数据,在浏览网站时,无论是ie或是nc都可以在浏览器状态栏中清楚地看到先连代理服务器,再连目标网站的过程。但是,千万不要把proxy server和router搞混了,proxy server是建立在应用层上的服务软件,而router则是一台网络设备或一台电脑,它是工作在ip层的,数据到达ip层后就进行转发。一般一个proxy server工作在一台既具有modem和网卡的计算机上的。不同的proxy server软件提供的服务不同,一般都提供包时,首先要分析它是什么请求,如果是>连接你已经给出来了,只要在作为代理服务器的电脑上安装代理服务器软件就可以了,比如:CCProxy\superproxy等。
以CCProxy为例,代理服务器软件CCProxy使用方法如下:
先期准备
首先要保证每台机器都指定了一个固定的IP地址。
其次是找一个CCProxy的安装程序。
服务器的安装
运行下载后的Ccproxysetupexe就可以一步步进行安装,只是在最后一步选择语言时要选择ChineseGB即为中文简体。
安装完成后,桌面有一个CCProxy的绿色图标,双击即可启动CCProxy了。绿色的网格坐标将会出现的曲线表示网络数据流量。
客户机的设置
1、对TCP/IP协议的属性进行设置。
方法:右击“网上邻居”,选择“属性”,双击网卡对应的“TCP/IP协议”,选择“DNS”标签。设置如下:选中“启用DNS”;“主机”中填入服务器名称;并在下面的“DNS服务器搜索顺序”中填入服务器的IP地址,本例为“19216801”,然后单击[填加];单击[确定]结束DNS设置;再次单击[确定],结束对网络属性的设置。这时需要重新启动计算机。
2、重新启动后,右击桌面上的IE图标,选择“属性”。在接下来的“Internet属性”对话框中进行如下设置:选中“连接”标签;单击“局域网设置” 按钮;选中“使用代理服务器”;单击“高级”;在“服务器类型”中分别填入:>
您好!
如果您收到 错误信息:代理服务器拒绝连接 ,说明 Firefox 正使用代理服务器来访问网站:
点击菜单按钮并点击选项 按钮。
选择高级面板。
选择网络选项卡。
在连接部分,点击设置…。
修改您的代理服务器设置:如果您并非使用代理服务器访问互联网(或者您并不知道是否需要使用代理服务器),请选择不使用代理。
关闭连接设置窗口。
点击确定按钮关闭“选项”窗口。
希望我的回答对您有所帮助,如有疑问,欢迎继续在本平台咨询。
了解更多火狐浏览器的使用小技巧,请到火狐社区:>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)