package jp.gr.javacons.industry.seminar.sockettempmonitor; import java.util.Vector; import java.io.*; import java.net.*; public class DataCollectorProxy implements SocketDataCollector { protected Socket socket; protected DataInputStream inputStream; protected DataOutputStream outputStream; public DataCollectorProxy(String host, int port){ try{ socket = new Socket(host, port); outputStream = new DataOutputStream( new BufferedOutputStream( socket.getOutputStream())); inputStream = new DataInputStream( new BufferedInputStream( socket.getInputStream())); }catch(UnknownHostException ex){ ex.printStackTrace(); System.exit(1); }catch(IOException ex){ ex.printStackTrace(); System.exit(1); } } public DataCollectorProxy(String host){ this(host, 9000); } public int getChannelSize(){ int size = 0; try{ outputStream.writeUTF("getChannelSize"); outputStream.flush(); size = inputStream.readInt(); }catch(IOException ex){ ex.printStackTrace(); System.exit(1); } return size; } public int getMinimumValue(){ int min = 0; try{ outputStream.writeUTF("getMinimumValue"); outputStream.flush(); min = inputStream.readInt(); }catch(IOException ex){ ex.printStackTrace(); System.exit(1); } return min; } public int getMaximumValue(){ int max = 0; try{ outputStream.writeUTF("getMaximumValue"); outputStream.flush(); max = inputStream.readInt(); }catch(IOException ex){ ex.printStackTrace(); System.exit(1); } return max; } public Vector getData(){ Vector data = new Vector(); try{ outputStream.writeUTF("getData"); outputStream.flush(); int channelSize = inputStream.readInt(); for(int i = 0 ; i < channelSize ; i++){ data.addElement(new Double(inputStream.readDouble())); } }catch(IOException ex){ ex.printStackTrace(); System.exit(1); } return data; } }