package trips; import java.io.*; import java.net.*; public class VorguKlient3 implements Runnable{ Socket sc1; BufferedReader lugeja1; PrintWriter kirjutaja1; Socket sc2; BufferedReader lugeja2; PrintWriter kirjutaja2; LauaLiides laud = new JaagupiLaud(); public VorguKlient3(Socket sc1, Socket sc2) { try { lugeja1 = new BufferedReader(new InputStreamReader( sc1.getInputStream())); lugeja2 = new BufferedReader(new InputStreamReader( sc2.getInputStream())); kirjutaja1 = new PrintWriter(sc1.getOutputStream(), true); kirjutaja2 = new PrintWriter(sc2.getOutputStream(), true); this.sc1=sc1; this.sc2=sc2; } catch (Exception ex) { ex.printStackTrace(); System.exit(1); } } void kuvaLaud(LauaLiides laud, PrintWriter kirjutaja) { String t = ""; for (int rida = 1; rida <= 3; rida++) { for (int veerg = 1; veerg <= 3; veerg++) { t += laud.symbol(rida, veerg); } t += "\n"; } kirjutaja.println(t); } int[] kysiAsukoht(char kellekaik, BufferedReader lugeja, PrintWriter kirjutaja) { while (true) { try { kirjutaja.println(kellekaik + " kord"); kirjutaja.println("palun rida"); int reanr = Integer.parseInt(lugeja.readLine()); kirjutaja.println("palun veerg"); int veerunr = Integer.parseInt(lugeja.readLine()); return new int[] { reanr, veerunr }; } catch (Exception ex) { kirjutaja.println(ex.getMessage()); } } } public void run() { char kellekord = 'X'; int seisund = 0; while (seisund == 0) { BufferedReader lugeja=lugeja1; PrintWriter kirjutaja=kirjutaja1; if(kellekord=='0'){ lugeja=lugeja2; kirjutaja=kirjutaja2; } int[] asukoht = kysiAsukoht(kellekord, lugeja, kirjutaja); seisund = laud.k2ik(asukoht[0], asukoht[1], kellekord); kuvaLaud(laud, kirjutaja1); kuvaLaud(laud, kirjutaja2); if (kellekord == 'X') { kellekord = '0'; } else { kellekord = 'X'; } } if (seisund == 1) { kirjutaja1.println("Nulli vőit"); kirjutaja2.println("Nulli vőit"); } if (seisund == 2) { kirjutaja1.println("Risti vőit"); kirjutaja2.println("Risti vőit"); } if (seisund == 3) { kirjutaja1.println("Viik"); kirjutaja2.println("Viik"); } try{ sc1.close(); sc2.close(); } catch(Exception ex){ex.printStackTrace();} } public static void main(String[] args) throws Exception { System.out.println("algus"); ServerSocket ss = new ServerSocket(Integer.parseInt(args[0])); System.out.println("Yhendus loodud"); for(int i=0; i<10; i++){ Socket sc1 = ss.accept(); System.out.println("Esimene klient kohal"); Socket sc2 = ss.accept(); System.out.println("Teine klient kohal"); new Thread(new VorguKlient3(sc1, sc2)).start(); } ss.close(); } }