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 {
    	  int saskaita = (int) (Math.random() * 600 + 200);
      BufferedReader BF = new BufferedReader(new InputStreamReader(System.in));
      System.out.println("---Iveskite porta: ");
      int portas = Integer.valueOf(BF.readLine()).intValue();
      
      ServerSocket socketas1 = new ServerSocket(portas);
      int c, prekyba=1, suma;
      String prekes = ("1.Radijas 125 LT. 2.DVD 300 LT 3.TV 500LT");
      String siuntimas;
      int siuntimas3;
      while (true) {
         System.out.println("---Serveris laukia kliento---");
         soketas = socketas1.accept();
         System.out.println("---Klientas prisijunge---");
         
         BufferedInputStream bis = new BufferedInputStream(soketas.getInputStream());
         InputStreamReader isr = new InputStreamReader(bis);
         
         BufferedOutputStream bos = new BufferedOutputStream(soketas.getOutputStream());
         OutputStreamWriter osw = new OutputStreamWriter(bos);

        
                   do {
                	   suma = 0;
              buf = new StringBuffer();
              while((c = isr.read()) != 0) {
              buf.append((char) c); // joins
              }
              System.out.println("Gavome: " + buf);
              int meniu = Integer.valueOf(buf.toString()).intValue();
              switch (meniu){
              case 1:  siuntimas = prekes + (char) 0;osw.write(siuntimas);osw.flush();prekyba =1; break; 
              
              
              
              
              case 2:   siuntimas = "Pirkite: 1.Radijas 125 LT. 2.DVD 300 LT 3.TV 500LT"+ (char) 0; osw.write(siuntimas);osw.flush();
              buf = new StringBuffer();
              while((c = isr.read()) != 0) {
              buf.append((char) c); }// joins
              System.out.println("Gavome: " + buf);
              int meniu2 = Integer.valueOf(buf.toString()).intValue();
              if (meniu2 ==1){siuntimas = "Nusipirkote radija" + (char) 0; osw.write(siuntimas);osw.flush();saskaita=saskaita-125;prekyba =1; break;}
              if (meniu2 ==2){siuntimas = "Nusipirkote dvd" + (char) 0;osw.write(siuntimas);osw.flush();saskaita=saskaita-300;prekyba =1; break;}
              if (meniu2 ==3){siuntimas = "Nusipirkote tv" + (char) 0;osw.write(siuntimas);osw.flush();saskaita=saskaita-500;prekyba =1; break;}
              
              
              
              case 3:siuntimas3 =saskaita; siuntimas= Integer.toString(siuntimas3)+ (char) 0;osw.write(siuntimas);osw.flush();prekyba =1; break;
              case 4:  siuntimas = "IKI" + (char) 0;osw.write(siuntimas);osw.flush();prekyba = 0; break;
              }
                     	  
              
           } while (prekyba != 0);
        
           System.out.println("---Klientas atsijunge---");
        
         
         try {
            soketas.close();
         }
         catch (IOException e) {}
        
      }
    }
    catch (IOException e) {}
  }
}