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


public class SocketServer {

 static StringBuffer buf;
 static Socket soketas;

 public static void main(String[] args) {
    try {
    	  int saskaita = (int) (Math.random() * 600 + 600);
      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;
      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 {
                	   
              buf = new StringBuffer();
              while((c = isr.read()) != 0) {
              buf.append((char) c); // joins
              }
              System.out.println("Pasirinkimas: " + 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("Pasirinkimas: " + buf);
              int meniu2 = Integer.valueOf(buf.toString()).intValue();
              if (meniu2 ==1){saskaita=saskaita-125; if (saskaita>0){siuntimas = "Nusipirkote radija" + (char) 0; osw.write(siuntimas);osw.flush();prekyba =1; break;} else siuntimas = "Neturite tiek pinigu" + (char) 0; osw.write(siuntimas);osw.flush();prekyba =1; break;}
              if (meniu2 ==2){saskaita=saskaita-300;if (saskaita>0){siuntimas = "Nusipirkote dvd" + (char) 0;osw.write(siuntimas);osw.flush();prekyba =1; break;} else siuntimas = "Neturite tiek pinigu" + (char) 0; osw.write(siuntimas);osw.flush();prekyba =1; break;}
              if (meniu2 ==3){saskaita=saskaita-500;if (saskaita>0){siuntimas = "Nusipirkote tv" + (char) 0;osw.write(siuntimas);osw.flush();prekyba =1; break;} else siuntimas = "Neturite tiek pinigu" + (char) 0; osw.write(siuntimas);osw.flush();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) {}
  }
}