`
yeshaoting
  • 浏览: 684407 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

[JAVA实时屏幕监控]Java使用代理服务器

    博客分类:
  • J2SE
 
阅读更多

 

/**
 * Copyright (c) 2012 Trusted Software and Mobile Computing(TSMC)
 * All right reserved.
 *
 * Created on Apr 24, 2012 12:42:24 PM
 * http://jarg.iteye.com/
 * Author: Jarg Yee <yeshaoting@gmail.com>
 */
package com.iteye.jarg.monitor.test;

import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import java.util.Properties;

/**
 * TODO 使用代理服务器工具类
 */
public class ProxyUtil
{
	/** 代理服务器IP地址 e.g. 10.10.0.96 */
	private static final String IP = "10.10.0.96";
	
	/** 初始化代理 */
	public static void initProxy()
	{
		Properties prop = System.getProperties();
		
		// 设置http访问要使用的代理服务器的地址
		prop.setProperty("http.proxyHost", IP);
		// 设置http访问要使用的代理服务器的端口
		prop.setProperty("http.proxyPort", "808");
		// 设置不需要通过代理服务器访问的主机,可以使用*通配符,多个地址用|分隔
		prop.setProperty("http.nonProxyHosts", "localhost|10.10.*");

		// 设置安全访问使用的代理服务器地址与端口
		// 它没有https.nonProxyHosts属性,它按照http.nonProxyHosts 中设置的规则访问
		prop.setProperty("https.proxyHost", IP);
		prop.setProperty("https.proxyPort", "443");

		// 使用ftp代理服务器的主机、端口以及不需要使用ftp代理服务器的主机
		prop.setProperty("ftp.proxyHost", IP);
		prop.setProperty("ftp.proxyPort", "2121");
		prop.setProperty("ftp.nonProxyHosts", "localhost|10.10.*");

		// socks代理服务器的地址与端口
		prop.setProperty("socksProxyHost", IP);
		prop.setProperty("socksProxyPort", "1080");
	}
	
	/**
	 * 使用代理
	 * */
	private static void testProxy() throws IOException
	{
		/** 使用代理连接网络 */
		URL url = new URL("http://www.baidu.com/");
		URLConnection conn = url.openConnection();
		conn.setConnectTimeout(3000);
		
		InputStream in = conn.getInputStream();
		BufferedInputStream bin = new BufferedInputStream(in);
		byte[] buf = new byte[1024];	// 缓存连网获得的数据
		while(bin.read(buf) > 0)
		{
			System.out.print(new String(buf, "GBK"));
		}
		System.out.println();
	}
	
	/** for debugging. 
	 * @throws IOException */
	public static void main(String[] args) throws IOException
	{
		initProxy();	// 初始化代理
		testProxy();		// 使用代理
	}
}
 

 

分享到:
评论
4 楼 yeshaoting 2012-05-03  
美丽的小岛 写道
yeshaoting 写道
美丽的小岛 写道
师兄呀,没有发现在哪里用了代理呀。是不是60行的URLConnection conn = url.openConnection();中的openConnection()方法用应该openConnection(Proxy proxy)这个方法呀?

不是.60行这是以C/S方式联接网络,与使用代理并没有直接关系.
这里使用代理的意思是,通过代理上网.

在一台没有联网的电脑环境中,程序可以通过先设置远方代理服务器的方式来连接网络,就好像IE这个程序通过在Internet选项中设置代理服务器IP地址及端口号来访问互联网一个道理.

不知道我有没有讲明白.好像很难讲.

是不可以这样理解,这里有三个层次,最高就是testProxy()这个函数的应用程序,下一层是initProxy()函数初始化的jvm环境下的联网的设置。这个jvm环境下再去找代理联网,这个为第三层,采用代理与外界通信,也即是通过代理去向服务器提交请求并把结果返回来。

你可以这样去理解,一般这里没有必要牵扯到JVM.
3 楼 美丽的小岛 2012-05-03  
yeshaoting 写道
美丽的小岛 写道
师兄呀,没有发现在哪里用了代理呀。是不是60行的URLConnection conn = url.openConnection();中的openConnection()方法用应该openConnection(Proxy proxy)这个方法呀?

不是.60行这是以C/S方式联接网络,与使用代理并没有直接关系.
这里使用代理的意思是,通过代理上网.

在一台没有联网的电脑环境中,程序可以通过先设置远方代理服务器的方式来连接网络,就好像IE这个程序通过在Internet选项中设置代理服务器IP地址及端口号来访问互联网一个道理.

不知道我有没有讲明白.好像很难讲.

是不可以这样理解,这里有三个层次,最高就是testProxy()这个函数的应用程序,下一层是initProxy()函数初始化的jvm环境下的联网的设置。这个jvm环境下再去找代理联网,这个为第三层,采用代理与外界通信,也即是通过代理去向服务器提交请求并把结果返回来。
2 楼 yeshaoting 2012-05-02  
美丽的小岛 写道
师兄呀,没有发现在哪里用了代理呀。是不是60行的URLConnection conn = url.openConnection();中的openConnection()方法用应该openConnection(Proxy proxy)这个方法呀?

不是.60行这是以C/S方式联接网络,与使用代理并没有直接关系.
这里使用代理的意思是,通过代理上网.

在一台没有联网的电脑环境中,程序可以通过先设置远方代理服务器的方式来连接网络,就好像IE这个程序通过在Internet选项中设置代理服务器IP地址及端口号来访问互联网一个道理.

不知道我有没有讲明白.好像很难讲.
1 楼 美丽的小岛 2012-05-02  
师兄呀,没有发现在哪里用了代理呀。是不是60行的URLConnection conn = url.openConnection();中的openConnection()方法用应该openConnection(Proxy proxy)这个方法呀?

相关推荐

    Java实现本机屏幕监控+源码

    总结来说,Java实现本机屏幕监控的核心在于使用`java.awt.Robot`类捕获屏幕,结合定时器或线程机制实现定时捕获,以及可能的网络传输技术实现实时展示。通过这些技术,我们可以构建出高效且功能完善的屏幕监控系统。...

    Java 服务器信息监控

    本文将详细探讨使用Java实现的服务器监控程序,以及如何利用它来监控CPU、内存、网络连接和服务状态。 Java作为一种跨平台的语言,为开发服务器监控工具提供了便利。在"Java 服务器信息监控"项目中,开发者可以编写...

    Java实现服务器监控相关代码

    Java实现服务器监控相关代码,使用Maven引入了系统服务jar包. 包含:CPU相关信息、內存相关信息、JVM相关信息、服务器相关信息、磁盘相关信息。 CPU相关信息:核心数 CPU总的使用率 CPU系统使用率 CPU用户使用率等

    基于Java的远程屏幕监控系统

    2. **多线程**:为了实现实时屏幕监控,服务器端可能需要处理来自多个客户端的并发请求,因此多线程编程是必需的。 3. **图像处理**:客户端需要捕获屏幕图像,可能使用Java的AWT或Swing库,将屏幕内容转化为适合...

    通过java socket实现屏幕网络监控

    在这个场景中,我们讨论的是如何使用Java Socket来实现实时的屏幕监控功能,即服务端能够远程查看客户端的屏幕内容,这样的功能在远程协助、监控或者演示场景中非常有用。 首先,我们需要了解Java Socket的基本概念...

    java远程屏幕监控系统源码

    Java远程屏幕监控系统是一种利用Java技术实现的,可以实时查看并控制远程计算机屏幕的应用程序。在Java中,这种功能通常通过Socket通信、多线程、图像处理和网络编程等技术来实现。以下是对这些关键知识点的详细解释...

    java远程屏幕监控

    Java远程屏幕监控是一种技术,允许一个程序或系统从一个位置获取另一个位置的计算机屏幕的实时视图。在Java中实现这种功能通常涉及到网络编程、图形用户界面(GUI)以及可能的多线程技术。这个压缩包包含客户端和...

    Java实现实时监控目录下文件变化的方法

    Java实现实时监控目录下文件变化的方法 Java实现实时监控目录下文件变化的方法是指通过Java语言来实现实时监控目录下文件的变化情况,包括文件的创建、删除、修改等操作。这种方法可以应用于各种场景,例如文件系统...

    Java网络屏幕监控(把客户端屏幕截图实时发送到主机端)

    通过理解并掌握以上这些技术点,开发者可以构建出一个稳定的屏幕监控系统,实现客户端与服务器间的实时屏幕截图共享。在实际应用中,这样的系统可能广泛应用于远程协助、在线教育、监控等领域。

    java远程屏幕监控系统

    总结起来,Java远程屏幕监控系统是利用Java的网络编程、GUI、图像处理和多线程等技术,构建的能够在不同设备间进行实时屏幕查看和控制的应用。它涉及到的技术广泛,需要开发者对Java有深入的理解,并具备良好的系统...

    基于Java Swing远程屏幕监控系统.zip

    Java Swing远程屏幕监控系统是一种利用Java编程语言开发的桌面应用程序,它允许用户远程监控其他计算机的屏幕活动。这个系统通常由客户端和服务器端两部分组成,客户端安装在被监控的机器上,而服务器端则接收并显示...

    java实现简单远程监控

    JMX是一种标准,用于管理和监控Java应用程序。通过创建MBeans(Managed Beans),我们可以封装应用中的特定功能或资源,并暴露它们以便于管理。MBeans可以通过MBeanServer注册,然后通过JMX连接器提供远程访问。创建...

    java服务器资源监控脚本.zip

    "java服务器资源监控脚本.zip"这个压缩包文件提供了一系列工具和脚本,用于帮助我们追踪和分析服务器上的关键性能指标。这些工具通常包括线程Dump分析、CPU使用率监控、网络性能检查、I/O操作检测以及JVM垃圾回收...

    远程屏幕监控系统,java实现的专题训练作业

    在本专题训练作业中,我们将深入探讨如何使用Java语言实现一个远程屏幕监控系统。这个系统允许用户通过网络实时查看和控制远程计算机的屏幕,从而在各种应用场景中提供远程协助、远程管理或教育辅助等功能。这一技术...

    java网络实时远程监控设计

    在具体设计和实现一个网络实时远程监控系统时,通常会涉及到客户端/服务器架构的设计、Socket编程、屏幕捕获技术、数据封装与传输以及实时数据流处理等关键技术。 首先,网络实时远程监控系统的核心架构是客户端/...

    java编写的ftp文件实时监控下载上传

    用java语言编写的ftp小工具,可以按指定时间监控ftp服务器,把服务器指定目录内新产生的文件或者文件夹下载到本地指定文件夹,下载后删除数据。 也可以监控本地文件夹,把文件夹内新产生的文件或者文件夹整体上传到...

    JavaMelody JAVA Web项目服务器性能监控工具

    JavaMelody是一款强大的JAVA Web项目服务器性能监控工具,它能够实时、全面地监控应用程序的运行状态,帮助开发者和运维人员了解系统性能瓶颈,及时发现并解决问题。通过在Java Web应用中简单集成,JavaMelody就能...

    java远程屏幕监控系统(精华)

    Java远程屏幕监控系统是一种利用Java技术实现的,用于实时查看和控制远程计算机桌面的应用程序。在企业级管理和技术支持中,这种系统能有效地提高工作效率,帮助管理员远程诊断和解决问题,而无需亲自到达现场。本...

Global site tag (gtag.js) - Google Analytics