import java.net.*;
import java.io.*;
import java.util.*;

public class SocketServer {

 static StringBuffer buf;
 static Socket soketas;

 public static void main(String[] args) {
    try {
      BufferedReader BF = new BufferedReader(new InputStreamReader(System.in));
      System.out.println("Iveskite porta: ");
      int portas = Integer.valueOf(BF.readLine()).intValue();
      
      ServerSocket socket1 = new ServerSocket(portas);
      int c, iStatex;
      
      while (true) {
         System.out.println("---Serveris laukia kliento---");
         soketas = socket1.accept();
         System.out.println("---Klientas prisijunge---");
         
         BufferedInputStream is = new BufferedInputStream(soketas.getInputStream());
         InputStreamReader isr = new InputStreamReader(is);
         
         BufferedOutputStream os = new BufferedOutputStream(soketas.getOutputStream());
         OutputStreamWriter osw = new OutputStreamWriter(os);

         
         char iClientIsPlaying = '1';
         do {
           long iSecret = ((int)(Math.random() * 10) + 1);
           System.out.println("-> Sugeneruotas skaicius: " + iSecret);
        
           do {
              
              buf = new StringBuffer();
        
              while((c = isr.read()) != 0) {
              buf.append((char) c); // joins
              }
            
              System.out.println("-> Kliento spejimas: " + buf);

              int iGuess = Integer.valueOf(buf.toString()).intValue();
              if (iGuess == iSecret) {
                   iStatex = 1;
              } else {
                   iStatex = 0;
              }
        
              String returnCode = "" + iStatex + (char) 0;
              osw.write(returnCode);
              osw.flush();
        
           } while (iStatex != 1);
        
           System.out.println("-> Klientas laimejo zaidima");
        
           buf = new StringBuffer();
        
           while((c = isr.read()) != 0) {
              buf.append((char) c); // joins
           }
           if (buf.toString().equals("T")) {
                System.out.println("");
                System.out.println("-> Klientas zaidzia dar");
           } else {
                System.out.println("-> Klientas atsijungia");
                System.out.println("");
                iClientIsPlaying = 0;
           }
        
         } while (iClientIsPlaying != 0); 
         
         try {
            soketas.close();
         }
         catch (IOException e) {}
        
      }
    }
    catch (IOException e) {}
  }
}