导航:首页 > 网络问题 > java如何突破网络限制

java如何突破网络限制

发布时间:2022-07-11 15:42:01

‘壹’ Java 中怎样在程序中设置代理服务器

从JDK1.5开始,Java在java.net包下提供了Proxy和ProxySelector两个类,其中Proxy代表一个代理服务器,可以在打开URLConnection连接时指定所用的Proxy实例,也可以在创建Socket连接时指定Proxy实例。而ProxySelector代表一个代理选择器,它提供了对代理服务器更加灵活的控制,它可以对HTTP、HTTPS、FTP、SOCKS等分别设置,而且还可以设置不需要通过代理服务器的主机和地址。通过使用ProxySelector可以达到像在Internet Explorer、FireFox等软件中设置代理服务器类似的效果。

代理服务器的功能就是代理网络用户去取得网络信息。我们使用网络浏览器直接连接其他Internet站点取得网络信息时,通常需要发送Request请求来等到响应。代理服务器是介于浏览器和Web服务器之间的一台服务器,有了它之后,浏览器不是直接到Web服务器去取得网页数据而是向代理服务器发出请求,Request请求会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并送回给网络浏览器。而且,大部分代理服务器都具有缓冲的功能,就好像一个大的Cache,它有很大的存储空间,它不断将新取得的数据储存到它本机的存储器上,如果浏览器所请求的数据在它本机的存储器上已经存在而且是最新的,那么它就不重新从Web服务器取数据,而直接将存储器上的数据传送给用户的浏览器,这样就能显着提高浏览速度和效率。归纳起来代理服务器主要提供如下两个功能:

突破自身IP限制,对外隐藏自身IP地址。突破IP限制包括访问国外受限站点,访问国内特定单位、团体的内部资源。

提高访问速度,代理服务器提供的缓冲功能可以避免每个用户都直接访问远程主机,从而提高客户端访问速度。

17.5.1 直接使用Proxy创建连接

Proxy有如下一个构造器:Proxy(Proxy.Type type, SocketAddress sa):创建表示代理服务器的Proxy对象。而sa参数指定代理服务器的地址,其中type是该代理服务器的类型,该服务器类型有如下三种:

(1)Proxy.Type.DIRECT:表示直接连接或缺少代理。

(2)Proxy.Type.HTTP:表示高级协议的代理,如 HTTP 或 FTP。

(3)Proxy.Type.SOCKS:表示 SOCKS(V4 或 V5)代理。

一旦创建了Proxy对象之后,程序就可以在使用URLConnection打开连接时,或创建Socket连接时传入一个Proxy对象,作为本次连接所使用的代理服务器。

其中URL包含了一个URLConnection openConnection(Proxy proxy)方法,该方法使用指定的代理服务器来打开连接;而Socket则提供了一个Socket(Proxy proxy)构造器,该构造器使用指定的代理服务器创建一个没有连接的Socket对象。

下面以URLConnection为例来介绍如何在URLConnection中使用代理服务器。

程序清单:codes/17/17-5/ProxyTest.java

上面程序中三行粗体字代码设置Java打开HTTP访问时的代理服务器属性,其中前两行代码设置代理服务器的地址和端口,第三行代码设置该代理HTTP访问哪些主机时不需要使用代理服务器。上面程序的①行代码处直接打开一个URLConnection,但系统会为打开该URLConnection时使用代理服务器。

运行上面程序,将会看到程序长时间等待,因为192.168.0.96通常并不是有效的代理服务器(当然,如果读者运行的机器恰好可以使用地址为192.168.0.96的代理服务器又另当别论)。

系统提供了默认的ProxySelector子类作为代理选择器,开发者可以实现自己的代理选择器,程序可以通过继承ProxySelector来实现自己的代理选择器。继承ProxySelector需要重写两个方法:

List<Proxy> select(URI uri):实现该方法让代理选择器根据不同的URI来使用不同的代理服务器,该方法就是代理选择器管理网络连接使用代理服务器的关键。

connectFailed(URI uri, SocketAddress sa, IOException ioe):当系统通过默认的代理服务器建立连接失败后,代理选择器将会自动调用该方法。通过重写该方法可以对连接代理服务器失败的情形进行处理。

系统默认的代理服务器选择器也重写了connectFailed方法,它重写该方法的处理策略是:当系统设置的代理服务器失败时,默认代理选择器将会采用直连的方式连接远程资源,所以当运行上面程序等待了足够长时间时,程序依然可以打印出该远程资源的所有内容。

‘贰’ 如何突破教育网流量限制

有个这样的办法,在你的网络电视上的设置为本地局域网共享播放,只要你看的台别人也在看 那么你就不需要通过INTERNET流量来看了!会从网内正在看这个台的机器上共享看!如果不行,你去下个东菱ADSL密码终结者 扫描别人的帐号密码 用他们的帐号密码看 钱他们付!
如果找不到,那么去找个叫代理服务器嗅探工具,自己不拨号 通过他们做代理去看!

‘叁’ java多线程访问被限制问,高分求助 高手给个思路或方法

应该是网络的防止恶意攻击功能起作用了;在HttpClient 请求时,模拟浏览器和客户端IP地址,要努力伪装成像人在发出Url请求。

‘肆’ Java web 怎样限制同一个ip地址访问网页查询次数,每天只允许一个IP查询一次,怎么实现

用你这种方式也可以实现,但是不能100%控制,因为代理服务器什么的可以隐藏IP

不过可以控制绝大多数的人吧
用Map去记录IP的话,如果访问量很大,后台服务器内存也会加大,

建议用数据库去记录
写个拦截器或者过虑器,访问的时候获取客户端IP存到数据库,之后只需要查一下数据库就可以了
数据库可以写个Job,24小时执行一次,清除24小时以前的数据即可实现你的需求了.
很简单的

‘伍’ 求java网络高手,tcp最大连接问题

网络上盛传的那个改连接数,我认为基本上没用,关键是你要了解他的原理,
它的作用是改变单位时间内的并发连接数,也就是说你写个程序,想要在1秒内连接超过50(假设)此连接,是不被允许的,你只能达到10个,我认为一般应用足够了,比如下载应用,1秒不够,稍后软件都会重试,并不会影响你的下载速度,像windows 2003这样的操作系统,是不会做此限制的,作为服务器,它的目标就是提高网络吞吐量。
这样解释能明白否?

阅读全文

与java如何突破网络限制相关的资料

热点内容
网络共享中心没有网卡 浏览:527
电脑无法检测到网络代理 浏览:1377
笔记本电脑一天会用多少流量 浏览:597
苹果电脑整机转移新机 浏览:1381
突然无法连接工作网络 浏览:1080
联通网络怎么设置才好 浏览:1230
小区网络电脑怎么连接路由器 浏览:1057
p1108打印机网络共享 浏览:1215
怎么调节台式电脑护眼 浏览:720
深圳天虹苹果电脑 浏览:956
网络总是异常断开 浏览:618
中级配置台式电脑 浏览:1015
中国网络安全的战士 浏览:638
同志网站在哪里 浏览:1422
版观看完整完结免费手机在线 浏览:1464
怎样切换默认数据网络设置 浏览:1114
肯德基无线网无法访问网络 浏览:1290
光纤猫怎么连接不上网络 浏览:1499
神武3手游网络连接 浏览:969
局网打印机网络共享 浏览:1005