package game; import java.awt.*; import java.awt.event.*; import java.io.*; import java.net.*; import javax.swing.*; public class Clientms2 extends JFrame implements MouseListener { private static final long serialVersionUID = 1L; JFrame container; static InetAddress address; static Socket s; static String host = "localhost"; static BufferedOutputStream bos; static OutputStreamWriter osw; static BufferedInputStream bis; static InputStreamReader isr; static int port = 5656; static String message; static boolean ClientTurn_flag = true; //static MouseListener l; static int tempx, tempy; static int mouseX, mouseY; static StringBuffer x, y; public Clientms2() { super("Client 1: Player 1"); setSize(800, 600); setDefaultCloseOperation(EXIT_ON_CLOSE); this.setResizable(false); addMouseListener(this); } public static void main(String args[]) { Clientms2 obj = new Clientms2(); obj.setVisible(true); } @Override public void mouseClicked(MouseEvent e) { if (ClientTurn_flag) { mouseX = e.getX(); mouseY = e.getY(); removeMouseListener(this); try { address = InetAddress.getByName(host); s = new Socket(address, port); } catch (IOException e1) { e1.printStackTrace(); } System.out.println("CLIENT SENDS: (" + mouseX + ", " + mouseY + ")"); send(mouseX, mouseY); receive(); addMouseListener(this); } else { //do nothing: It is not the Client's turn to play } //ClientTurn_flag = !ClientTurn_flag; } public void receive() { if (ClientTurn_flag == false) { try { System.out.println("Client waiting to receive..."); do { bis = new BufferedInputStream(s.getInputStream()); isr = new InputStreamReader(bis, "US-ASCII"); } while(isr.ready() == true); x = new StringBuffer(); y = new StringBuffer(); while((tempx = isr.read()) != 13) x.append((char) tempx); String str = x.toString(); mouseX = Integer.parseInt(str); while((tempy = isr.read()) != 13) y.append((char) tempy); str = y.toString(); mouseY = Integer.parseInt(str); System.out.println("CLIENT CONSOLE, SERVER CLICKED: (" + mouseX + ", " + mouseY + ")"); } catch (IOException e) { } ClientTurn_flag = true; System.out.println("Receive() -> C's Flag: " + ClientTurn_flag); System.out.println("Waiting for Client's Mouse Click..."); } } private void send(int xcor, int ycor) { try { bos = new BufferedOutputStream(s.getOutputStream()); osw = new OutputStreamWriter(bos, "US-ASCII"); message = (Integer.toString(xcor)) + (char) 13; osw.write(message); osw.flush(); message = (Integer.toString(ycor)) + (char) 13; osw.write(message); osw.flush(); } catch (IOException e) { e.printStackTrace(); } ClientTurn_flag = false; System.out.println("Send() -> C's Flag: " + ClientTurn_flag); } @Override public void mouseEntered(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseExited(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mousePressed(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseReleased(MouseEvent e) { // TODO Auto-generated method stub } }
I can't figure this out!! I am using removeMouseListener right after a click is done (provided its the right person's turn)
package game; import java.awt.*; import java.awt.event.*; import java.io.*; import java.net.*; import javax.swing.*; public class Clientms2 extends JFrame implements MouseListener { private static final long serialVersionUID = 1L; JFrame container; static InetAddress address; static Socket s; static String host = "localhost"; static BufferedOutputStream bos; static OutputStreamWriter osw; static BufferedInputStream bis; static InputStreamReader isr; static int port = 5656; static String message; static boolean ClientTurn_flag = true; //static MouseListener l; static int tempx, tempy; static int mouseX, mouseY; static StringBuffer x, y; public Clientms2() { super("Client 1: Player 1"); setSize(800, 600); setDefaultCloseOperation(EXIT_ON_CLOSE); this.setResizable(false); addMouseListener(this); } public static void main(String args[]) { Clientms2 client = new Clientms2(); client.setVisible(true); } @Override public void mouseClicked(MouseEvent e) { if (ClientTurn_flag) { mouseX = e.getX(); mouseY = e.getY(); removeMouseListener(this); try { address = InetAddress.getByName(host); s = new Socket(address, port); } catch (IOException e1) { e1.printStackTrace(); } System.out.println("CLIENT SENDS: (" + mouseX + ", " + mouseY + ")"); send(mouseX, mouseY); //try this ClientTurn_flag = false; receive(); addMouseListener(this); } else { //do nothing: It is not the Client's turn to play } //ClientTurn_flag = !ClientTurn_flag; } public void receive() { if (ClientTurn_flag == false) { try { System.out.println("Client waiting to receive..."); do { bis = new BufferedInputStream(s.getInputStream()); isr = new InputStreamReader(bis, "US-ASCII"); } while(isr.ready() == true); x = new StringBuffer(); y = new StringBuffer(); while((tempx = isr.read()) != 13) x.append((char) tempx); String str = x.toString(); mouseX = Integer.parseInt(str); while((tempy = isr.read()) != 13) y.append((char) tempy); str = y.toString(); mouseY = Integer.parseInt(str); System.out.println("CLIENT CONSOLE, SERVER CLICKED: (" + mouseX + ", " + mouseY + ")"); } catch (IOException e) { } ClientTurn_flag = true; System.out.println("Receive() -> C's Flag: " + ClientTurn_flag); System.out.println("Waiting for Client's Mouse Click..."); } } private void send(int xcor, int ycor) { try { bos = new BufferedOutputStream(s.getOutputStream()); osw = new OutputStreamWriter(bos, "US-ASCII"); message = (Integer.toString(xcor)) + (char) 13; osw.write(message); osw.flush(); message = (Integer.toString(ycor)) + (char) 13; osw.write(message); osw.flush(); } catch (IOException e) { e.printStackTrace(); } } @Override public void mouseEntered(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseExited(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mousePressed(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseReleased(MouseEvent e) { // TODO Auto-generated method stub } }
package game; import java.awt.*; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.io.*; import java.net.*; import javax.swing.*; public class Serverms2 extends JFrame implements MouseListener { private static final long serialVersionUID = 1L; JFrame container; static Socket s; static ServerSocket ss; static BufferedOutputStream bos; static OutputStreamWriter osw; static BufferedInputStream bis; static InputStreamReader isr; static StringBuffer x, y; static int port = 5656; static int ID, count = 0; static int tempx, tempy; static int mouseX, mouseY; static String message; static boolean ServerTurn_flag = false; public Serverms2() { super("Server: Player 2"); setSize(800, 600); setDefaultCloseOperation(EXIT_ON_CLOSE); this.setResizable(false); addMouseListener(this); } public static void main(String args[]) { Serverms2 obj = new Serverms2(); obj.setVisible(true); try { ss = new ServerSocket(port); } catch (IOException e1) { e1.printStackTrace(); } if(ServerTurn_flag == false) { try { s = ss.accept(); bis = new BufferedInputStream(s.getInputStream()); isr = new InputStreamReader(bis, "US-ASCII"); x = new StringBuffer(); y = new StringBuffer(); while((tempx = isr.read()) != 13) x.append((char) tempx); String str = x.toString(); mouseX = Integer.parseInt(str); while((tempy = isr.read()) != 13) y.append((char) tempy); str = y.toString(); mouseY = Integer.parseInt(str); System.out.println("SERVER CONSOLE, CLIENT CLICKED: (" + mouseX + ", " + mouseY + ")"); } catch (IOException e) { e.printStackTrace(); } ServerTurn_flag = true; } } @Override public void mouseClicked(MouseEvent e) { if(ServerTurn_flag) { mouseX = e.getX(); mouseY = e.getY(); removeMouseListener(this); System.out.println("SERVER SENDS: (" + mouseX + ", " + mouseY + ")"); send(mouseX, mouseY); receive(); addMouseListener(this); } else { //do nothing: It is not the Server's turn to play } } public void receive() { try { if (ServerTurn_flag == false) { System.out.println("Server waiting to receive..."); s = ss.accept(); bis = new BufferedInputStream(s.getInputStream()); isr = new InputStreamReader(bis, "US-ASCII"); x = new StringBuffer(); y = new StringBuffer(); while((tempx = isr.read()) != 13) x.append((char) tempx); String str = x.toString(); mouseX = Integer.parseInt(str); while((tempy = isr.read()) != 13) y.append((char) tempy); str = y.toString(); mouseY = Integer.parseInt(str); System.out.println("SERVER CONSOLE, CLIENT CLICKED: (" + mouseX + ", " + mouseY + ")"); ServerTurn_flag = true; } } catch (IOException e) { } System.out.println("Receive() -> Serv's Flag: " + ServerTurn_flag); System.out.println("Waiting for Server's Mouse Click..."); } private void send(int xcor, int ycor) { try { bos = new BufferedOutputStream(s.getOutputStream()); osw = new OutputStreamWriter(bos, "US-ASCII"); message = (Integer.toString(xcor)) + (char) 13; osw.write(message); osw.flush(); //System.out.println(message); message = (Integer.toString(ycor)) + (char) 13; osw.write(message); osw.flush(); bos.flush(); //System.out.println(message); } catch (IOException e) { e.printStackTrace(); } ServerTurn_flag = false; System.out.println("Send() -> Serv's Flag: " + ServerTurn_flag); } @Override public void mouseEntered(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseExited(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mousePressed(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseReleased(MouseEvent e) { // TODO Auto-generated method stub } }
package game; import java.awt.*; import java.awt.event.*; import java.io.*; import java.net.*; import javax.swing.*; public class Clientms2 extends JFrame implements MouseListener { private static final long serialVersionUID = 1L; JFrame container; static InetAddress address; static Socket s; static String host = "localhost"; static BufferedOutputStream bos; static OutputStreamWriter osw; static BufferedInputStream bis; static InputStreamReader isr; static int port = 5656; static String message; static boolean ClientTurn_flag = true; //static MouseListener l; static int tempx, tempy; static int mouseX, mouseY; static StringBuffer x, y; public Clientms2() { super("Client 1: Player 1"); setSize(400, 400); setDefaultCloseOperation(EXIT_ON_CLOSE); this.setResizable(false); addMouseListener(this); try { address = InetAddress.getByName(host); s = new Socket(address, port); } catch(Exception e){System.out.println("You fail at socket programs sucka!!!");} } public static void main(String args[]) { Clientms2 client = new Clientms2(); client.setVisible(true); } @Override public void mouseClicked(MouseEvent e) { if (ClientTurn_flag) { mouseX = e.getX(); mouseY = e.getY(); send(mouseX, mouseY); ClientTurn_flag = false; System.out.println("End of client's turn, client waiting to receive."); receive(); } } public void receive() { try { do { bis = new BufferedInputStream(s.getInputStream()); isr = new InputStreamReader(bis, "US-ASCII"); } while(isr.ready() == true); x = new StringBuffer(); y = new StringBuffer(); while((tempx = isr.read()) != 13) x.append((char) tempx); String str = x.toString(); mouseX = Integer.parseInt(str); while((tempy = isr.read()) != 13) y.append((char) tempy); str = y.toString(); mouseY = Integer.parseInt(str); } catch (IOException e) { } ClientTurn_flag = true; } private void send(int xcor, int ycor) { try { bos = new BufferedOutputStream(s.getOutputStream()); osw = new OutputStreamWriter(bos, "US-ASCII"); message = (Integer.toString(xcor)) + (char) 13; osw.write(message); osw.flush(); message = (Integer.toString(ycor)) + (char) 13; osw.write(message); osw.flush(); } catch (IOException e) { e.printStackTrace(); } } @Override public void mouseEntered(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseExited(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mousePressed(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseReleased(MouseEvent e) { // TODO Auto-generated method stub } }
package game; import java.awt.*; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.io.*; import java.net.*; import javax.swing.*; public class Serverms2 extends JFrame implements MouseListener { private static final long serialVersionUID = 1L; JFrame container; static Socket s; static ServerSocket ss; static BufferedOutputStream bos; static OutputStreamWriter osw; static BufferedInputStream bis; static InputStreamReader isr; static StringBuffer x, y; static int port = 5656; static int ID, count = 0; static int tempx, tempy; static int mouseX, mouseY; static String message; static boolean ServerTurn_flag = false; public Serverms2() { super("Server: Player 2"); setSize(400, 400); setDefaultCloseOperation(EXIT_ON_CLOSE); this.setResizable(false); addMouseListener(this); try { ss = new ServerSocket(port); } catch (IOException e1) { e1.printStackTrace(); } } public static void main(String args[]) { Serverms2 server = new Serverms2(); server.setVisible(true); try { s = ss.accept(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } server.receive(); } @Override public void mouseClicked(MouseEvent e) { if(ServerTurn_flag) { mouseX = e.getX(); mouseY = e.getY(); //System.out.println("SERVER SENDS: (" + mouseX + ", " + mouseY + ")"); send(mouseX, mouseY); System.out.println("End of server's turn, server waiting to receive."); ServerTurn_flag = false; receive(); } } public void receive() { try { bis = new BufferedInputStream(s.getInputStream()); isr = new InputStreamReader(bis, "US-ASCII"); x = new StringBuffer(); y = new StringBuffer(); while((tempx = isr.read()) != 13) x.append((char) tempx); String str = x.toString(); mouseX = Integer.parseInt(str); while((tempy = isr.read()) != 13) y.append((char) tempy); str = y.toString(); mouseY = Integer.parseInt(str); } catch (IOException e) { } ServerTurn_flag = true; } private void send(int xcor, int ycor) { try { bos = new BufferedOutputStream(s.getOutputStream()); osw = new OutputStreamWriter(bos, "US-ASCII"); message = (Integer.toString(xcor)) + (char) 13; osw.write(message); osw.flush(); //System.out.println(message); message = (Integer.toString(ycor)) + (char) 13; osw.write(message); osw.flush(); bos.flush(); //System.out.println(message); } catch (IOException e) { e.printStackTrace(); } } @Override public void mouseEntered(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseExited(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mousePressed(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseReleased(MouseEvent e) { // TODO Auto-generated method stub } }

| DaniWeb Message | |
| Cancel Changes | |