// Alex Huddleston // Breakthrough Client in Java import java.io.IOException; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Scanner; import java.io.DataInputStream; import java.util.Arrays; import javax.swing.*; import javax.swing.text.html.parser.ParserDelegator; public class Client { public static void main (String[] args) { Scanner keyboard = new Scanner(System.in); String hostname = args[0]; int portnum = Integer.parseInt(args[1]); //keyboard.nextLine(); // used to buffer out extra space. ParserDelegator parserDelegator = new ParserDelegator(); //System.out.println("parserDelegator set: "+ parserDelegator); JFrame frame = new JFrame("Breakthrough"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(800, 600); frame.setLocationRelativeTo(null); //frame.pack(); frame.setVisible(true); try { Socket echoSocket = new Socket(hostname, portnum); PrintWriter output = new PrintWriter(echoSocket.getOutputStream(), true); BufferedReader in = new BufferedReader(new InputStreamReader(echoSocket.getInputStream())); BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in)); String userInput = "test"; char[] b = new char[256]; in.read(b, 0, 256); String temp = "" + String.valueOf(b).replace("\n", "
").trim() + "
"; JLabel label = new JLabel("testing"); frame.getContentPane().add(label); System.out.print(b); String g = "GAME OVER"; char[] go = new char[9]; for(int x = 0; x < go.length; ++x) { go[x] = g.charAt(x); } boolean end = false; int c = 0; while(!end && (userInput != null)) { userInput = stdIn.readLine(); output.println(userInput); output.flush(); char[] buffer = new char[256]; in.read(buffer, 0, 256); JLabel display = new JLabel(Arrays.toString(buffer)); if(c == 0) { frame.getContentPane().remove(label); ++c; } else { frame.getContentPane().remove(display); } frame.getContentPane().add(display); for(int i = 0; i < buffer.length; ++i) { if(Arrays.equals(Arrays.copyOfRange(buffer, i, i+9), go)) { end = true; } } } output.close(); in.close(); stdIn.close(); echoSocket.close(); } catch (IOException e){ System.err.println("IOException: " + e.getMessage()); } } }