All pastes #561270 Raw Edit

Stuff

public java v1 · immutable
·published 2007-06-12 12:02 UTC
rendered paste body
import 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";	}}