Ho fatto il codice di prova di comunicazione fra client e server e sembra che vada tutto ok, ora se volessi fare che il client una volta collegato legge un numero e glielo invia, il server lo riceve ed esegue per esempio il fattoriale (prima cosa che mi è venuta in mente), e lo invia ancora al client che lo stampa....come dovrei comportarmi???
(se qualcuno magari conosce una guida sulle socket in java on line e magari in italiano sarebbe una buona cosa)

codice:
public class Server {
    public static void main(String[] args) throws IOException {
        ServerSocket serverSocket = new ServerSocket(3456);
        System.out.println("In attesa");
        Socket clientSocket = serverSocket.accept();
        System.out.println("Si è connesso un client");
        //una volta connesso client dobbiamo creare printstream per la scrittura
        PrintWriter pw   = new PrintWriter(clientSocket.getOutputStream(),true);
        BufferedReader br   = new BufferedReader( new InputStreamReader(clientSocket.getInputStream()));
        String messaggio = br.readLine();
        System.out.println(messaggio);
        pw.println("Ho ricevuto il tuo messaggio");
        pw.close();
        br.close();
        clientSocket.close();
        serverSocket.close();
    }
codice:
public class Client {
   public static void main(String[] args)
   {
        try
        {
            Socket socket = new Socket("localhost", 3456);
            PrintWriter pw   = new PrintWriter(socket.getOutputStream(),true);
            BufferedReader br   = new BufferedReader( new InputStreamReader(socket.getInputStream()));
            System.out.println("Connessione al server");
            pw.println("Ciao sono il client");
            String messaggio = br.readLine();
            System.out.println(messaggio);
            br.close();
            pw.close();
            socket.close();
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
   }
}