/* The Browser Snooper Client by Jim Mach */ import java.awt.*; import java.applet.*; import java.io.*; import java.net.*; import ErrorHandler; import ClientInfo; public class BrowserClient extends Applet implements Runnable { final int DEFAULT_PORT = 6780; final char COMM_DELIMETER = 144; final int APPLET_HEIGHT = 250; final int APPLET_WIDTH = 450; Thread browserclient_thread = null; ErrorHandler error = new ErrorHandler(); ClientInfo client_info; boolean conn_flag = false; Socket conn = null; DataInputStream data_in; PrintStream data_out; TextArea ta_java; Button bt_ok; Label ll_java; Label ll_info; /* static public void main(String[] args) { Frame f = new Frame("Browser Client"); BrowserClient bc = new BrowserClient(); bc.init(); bc.start(); f.add("Center", bc); f.resize(APPLET_WIDTH, APPLET_HEIGHT); f.show(); } */ public void init() { client_info = new ClientInfo(); ConnectToHost(); SendInfo(); ReceiveInfo(); CreateWindow(); show(); } public void destroy() { try { conn.close(); } catch(IOException e) {} } public void start() { if (browserclient_thread == null) { browserclient_thread = new Thread(this); browserclient_thread.start(); } } public void stop() { if ((browserclient_thread != null) && (browserclient_thread.isAlive())) { browserclient_thread.stop(); browserclient_thread = null; } } public void run() { } public boolean action(Event evt, Object arg) { switch (evt.id) { case Event.ACTION_EVENT: if (evt.target instanceof Button) { if (evt.target == bt_ok) { ta_java.insertText(client_info.FormatInfo('\n'), 0); } } break; default: break; } return true; } private void ConnectToHost() { String host_name = null; try { host_name = this.getCodeBase().getHost(); if (host_name.length() != 0) { // conn = new Socket(host_name, DEFAULT_PORT); // data_in = new DataInputStream(conn.getInputStream()); // data_out = new PrintStream(conn.getOutputStream()); conn_flag = true; } } catch(IOException e) {error.ShowError(e, "Error in ConnectToHost() Socket");} } private void SendInfo() { client_info.GetInfo(conn_flag); if (conn != null) { try {data_out.println(client_info.FormatInfo(COMM_DELIMETER));} catch(IOException e) {} } } private void ReceiveInfo() { String response = null; if (conn != null) { try { response = data_in.readLine(); conn.close(); } catch(IOException e) {} client_info.UnFormatInfo(response, COMM_DELIMETER); } } private void CreateWindow() { setLayout(null); resize(insets().left + insets().right + APPLET_WIDTH, insets().top + insets().bottom + APPLET_HEIGHT); ll_info = new Label("Take a look at the info I (could) record about you"); ll_info.setFont(new Font("Dialog", Font.BOLD, 12)); add(ll_info); ll_info.reshape(insets().left + 10, insets().top + 10, 300, 20); ll_java = new Label("Java User Information:"); ll_java.setFont(new Font("Dialog", Font.BOLD, 12)); add(ll_java); ll_java.reshape(insets().left + 10, insets().top + 30, 200, 20); ta_java = new TextArea(200, 40); ta_java.setFont(new Font("Courier", Font.PLAIN, 12)); add(ta_java); ta_java.reshape(insets().left + 10, insets().top + 50, 350, 100); bt_ok = new Button("OK"); add(bt_ok); bt_ok.reshape(insets().left + 150, insets().top + 160, 60, 30); } }