rendered paste bodyimport java.net.*;import java.io.*;import java.util.*;import java.lang.*;public class FrubiServer{ public static boolean stan; public static int id; public static void main(String[] args){ id = 0; stan = true; ServerSocket gniazdkoSerwera = null; int nrPortu = 3535; Socket gniazdkoKlienta = null; try { // utworzenie gniazdka na którym nasłuchuje serwer gniazdkoSerwera = new ServerSocket(nrPortu); System.out.println("Twoj serwer nasluchuje na porcie: " + gniazdkoSerwera.getLocalPort()); } catch(IOException e){ System.out.println("Nasluchiwanie na porcie: " + gniazdkoSerwera.getLocalPort() + " niemozliwe, " + e); System.exit(1); } do{ try{ gniazdkoKlienta = gniazdkoSerwera.accept(); id++; System.out.println("Mamy kogos na lini, jego adres to "+ gniazdkoKlienta.getInetAddress() +" przydzielam mu nr ID:"+ id); new FrubiServerUser(gniazdkoKlienta, id).start(); } catch(IOException e){ System.out.println("W czasie polaczenia wystapil blad: "+ e); } }while(stan); return; } }class FrubiServerUser extends Thread { private Socket CONNECTION = null; private int ClientID; private InetAddress AddressIP = null; private BufferedReader br = null; private PrintWriter pw = null; private String liniaWe, liniaWy; FrubiServerUser(Socket sock, int ID){ ClientID = ID; CONNECTION = sock; AddressIP = sock.getInetAddress(); try{ br = new BufferedReader(new InputStreamReader(CONNECTION.getInputStream())); pw = new PrintWriter(new BufferedOutputStream(CONNECTION.getOutputStream(), 1024), false); } catch(IOException e){ System.out.println("Uzytkownik o ID "+ ClientID +" spowodowal wyjatek: "+ e); } } public void run(){ pw.println("Userze o ID "+ ClientID +" polaczyles sie z serwerem informacyjnym Frubiego.\n"+ "((-(-_(-_-(-_-)-_-)_-)-) FrubiServer ((-(-_(-_-(-_-)-_-)_-)-)"); pw.flush(); try{ while((liniaWe = br.readLine()) != null){ System.out.println("Zapytanie usera "+ClientID+" to:"+liniaWe); liniaWy = odpowiedzSerwera(liniaWe); pw.println(liniaWy); pw.flush(); if(liniaWe.equals("Disconnect")) break; } } catch(IOException e){ System.out.println("Przy wysylaniu odpowiedzi do "+ ClientID +" pojawil sie blad: "+e); } finalize(); } public void finalize(){ System.out.println("User "+ ClientID +" czeka na rozlaczenie!"); try{ sleep(10000); CONNECTION.close(); } catch(IOException e){ System.out.println("W czasie zamykania gniazda dla usera "+ ClientID +" wystapil wyjatek: "+e); } catch(InterruptedException e) { } System.out.println("User "+ ClientID +" rozlaczyl sie!"); stop(); } String odpowiedzSerwera(String s){ String polecenie[]=s.split(" "); if(polecenie[0].equals("Disconnect")) return "Za chwile zostaniesz rozlaczony. Zycze milego dnia!"; if(polecenie[0].equals("7cf2ab82aaef5d9a23591e3251bf7e878d690d9b")){ //"Zamknij" server FrubiServer.stan = false; System.out.println("***************************************************\n"+ "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"+ "Uzytkownik o ID "+ ClientID +" z adresu "+ AddressIP +"\n"+ "rozpoczal procedure wylanczania servera!\n"+ "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"+ "***************************************************\n"); return "***********************************************\n"+ "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"+ "!Procedura rozpoczeta!!!\n!"+ "Server zaraz padnie! Kolejny User wykona bladd!\n((-(-_(-_-(-_-)-_-)_-)-))\n"+ "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"+ "***********************************************\n"; } if(polecenie[0].equals("Pobierz")){ String Wy; try{ BufferedReader m_strumienPliku = new BufferedReader(new InputStreamReader(new FileInputStream("./pobierz/"+polecenie[1]))); Wy = "Wiadomosc wyslana " + new Date().toLocaleString() +": \n"; String linia; while((linia = m_strumienPliku.readLine())!=null) Wy+=linia+"\n"; } catch(IOException e){ System.out.println("W czasie skladania odpowiedzi dla "+ this.ClientID +" wystapil blad: "+e); Wy="Nie udalo sie otworzyc pliku \""+ s +"\".\n"; } catch(ArrayIndexOutOfBoundsException e){ System.out.println("Uzytkownik "+this.ClientID+"zapomnial drugiego argumentu. Dla \"Pobierz\"("+e+")\n"); Wy="Zapomniales podac drugiego argumentu mowiacego jaki plik mam pobrac!"; } return Wy; } return "Nie znam takiego polecenia jak \""+s+"\"\n"; }}