portal Michała Hanćkowiaka
Begin main content
import java.net.*;
import java.io.*;

public class SerwerObliczen { //ComputationServer
    private int port;
    private ServerSocket ss;

    public SerwerObliczen(int aport) {
        super();
        port = aport;
        ss = null;
    }

    public void InicjujGniazdo() { //InitializeSocket
        try {
            ss = new ServerSocket(port);
        } catch (Exception e) {
            e.printStackTrace();
            System.exit(1);
        }
    }

    public void WykonujZadania() { //ExecuteTasks
        Socket s;
        ObjectInputStream ois;
        ObjectOutputStream oos;

        while (true) {
            System.out.println("Czekam na zadanie (waiting for a task)...");
            try {
                s = ss.accept();
                System.out.println("Polaczenie z (connection from) "+
                    s.getInetAddress().getHostName());
                System.out.println("Odczytywanie zadania (task reading) ...");
                oos = new ObjectOutputStream(s.getOutputStream());
                ois = new ObjectInputStream(s.getInputStream());
                Zadanie z = (Zadanie) ois.readObject();
                System.out.println("Odebrano zadanie typu (received task of the type)"+
                    z.getClass().getName());
                System.out.println(
                    "Odczytywanie parametrow (reading parameters)...");
                Object par = ois.readObject();
                System.out.println(
                    "Parametry odczytane. Wykonuje zadanie (Parameters read. I am executing a task)...");
                Object wynik = z.Wykonaj(par);
                System.out.println(
                    "Zadanie wykonane. Wysylam wyniki (task done, sending results)...");
                oos.writeObject(wynik);
                System.out.println("Gotowe. Zamykam sesje z (ready, I am closing session with) "+
                    s.getInetAddress().getHostName());
                ois.close();
                oos.close();
                s.close();
            } catch(Exception e) {
                e.printStackTrace();
                System.exit(1);
            }
        }
    }
    public static void main(String[] args) {
        int port = 0;
        BufferedReader klawiatura; //keyboard

        try {
            klawiatura = new BufferedReader(
                new InputStreamReader(
                    System.in
                    )
                );
            System.out.print("Podaj numer portu (provide port number): ");
            port = Integer.parseInt(
                klawiatura.readLine()
                );

        } catch(Exception e) {
            e.printStackTrace();
            System.exit(1);
        }
        SerwerObliczen serwer = new SerwerObliczen(port);
        serwer.InicjujGniazdo();
        serwer.WykonujZadania();
    }
}

uwaga: portal używa ciasteczek tylko do obsługi tzw. sesji...