用java获取并传出虚拟机系统实时性能参数(3:socket传递参数)
2013-04-04 10:32
393 查看
现在开始把各个虚拟机的信息传到服务器上,这里实际上是一个多线程单向的传输,在网上查找相关资料,推荐http://blog.csdn.net/zhangty0223/article/details/8744223,改出自己的代码,实验证明可用。MySystemMonitor类见我之前写的/article/11271102.html。
server:
client:
setting:
server:
package bupt.tx.socket; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import bupt.tx.socket.SocketSetting; public class Server2MClient { public static void main(String[] args) throws IOException { @SuppressWarnings("resource") ServerSocket server = new ServerSocket(SocketSetting.SERVER_PORT); while (true) { Socket socket = server.accept(); invoke(socket); } } private static void invoke(final Socket client) throws IOException { new Thread(new Runnable() { public void run() { BufferedReader in = null; PrintWriter out = null; try { in = new BufferedReader(new InputStreamReader( client.getInputStream())); out = new PrintWriter(client.getOutputStream()); while (true) { String msg = in.readLine(); System.out.println(msg); out.println("Server received " + msg); out.flush(); if (msg.equals("bye")) { break; } } } catch (IOException ex) { ex.printStackTrace(); } finally { try { in.close(); } catch (Exception e) { } try { out.close(); } catch (Exception e) { } try { client.close(); } catch (Exception e) { } } } }).start(); } }
client:
package bupt.tx.socket; //import java.io.BufferedReader; //import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; import java.util.concurrent.TimeUnit; import bupt.tx.systemmonitor.MySystemMonitor; import bupt.tx.socket.SocketSetting; public class MClient { public static void main(String[] args) throws Exception { int count = 0; Socket socket = new Socket(SocketSetting.SERVER_IP, SocketSetting.SERVER_PORT); // BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); PrintWriter out = new PrintWriter(socket.getOutputStream()); // BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); while (true) { //String msg = reader.readLine(); out.println(MySystemMonitor.getIP()); out.flush(); out.println(MySystemMonitor.getTotalInfo()); out.flush(); //if (msg.equals("bye")) { // break; //} TimeUnit.MINUTES.sleep(1); if(count ++ > 10) break; } socket.close(); } }
setting:
package bupt.tx.socket; public class SocketSetting { final public static int SERVER_PORT = 10000; //public static int MAXNOHBTIME = 60000; final public static String SERVER_IP = "10.***.***.***"; }
相关文章推荐
- 用java获取并传出虚拟机系统实时性能参数(1:得到性能参数)
- 用java获取并传出虚拟机系统实时性能参数(2:配网络)
- java 通过System.getProperties()获取系统参数
- Java中用户向系统传递参数的三种基本方式
- 工作随笔——Java调用Groovy类的方法、传递参数和获取返回值
- Java通过System.getProperties()获取系统参数
- Java中用户向系统传递参数的三种基本方式实例分享
- 请问如何用java获取这些系统参数?
- Java中系统属性Properties介绍 System.getProperty()参数大全-tomcat设置参数,java获取
- java获取系统/服务器时间,从String类型时间获取取一部分时间参数
- java 获取系统参数
- java通过虚拟机设置参数的方式动态获取当前项目的绝对路径
- jquery通过ajax-json访问java后台传递参数,通过request.getParameter获取不到参数的说明
- java 通过System.getProperties()获取系统参数
- 获取本机IP可区分系统可区分虚拟机和本机java程序跨平台
- 一个优秀的Java程序员必须了解GC的工作原理、如何优化GC的性能、如何与GC进行有限的交互,有一些应用程序对性能要求较高,例如嵌入式系统、实时系统等,只有全面提升内存的管理效率,才能提高整个应用程序
- java 通过System.getProperties()获取系统参数
- java创建Timestamp的几种方式(怎样获取实时系统时间)
- 获取java程序的系统参数
- 调用系统内部searchmanager组建时,Intent参数的传递与获取