您的位置:首页 > 编程语言 > Java开发

用java获取并传出虚拟机系统实时性能参数(3:socket传递参数)

2013-04-04 10:32 393 查看
现在开始把各个虚拟机的信息传到服务器上,这里实际上是一个多线程单向的传输,在网上查找相关资料,推荐http://blog.csdn.net/zhangty0223/article/details/8744223,改出自己的代码,实验证明可用。MySystemMonitor类见我之前写的/article/11271102.html

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.***.***.***";

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐