Allego tutto...tanto è solo una prova....nulla di importante....
Ecco tutto il codice:

Message
codice:
import java.io.Serializable;

public class Message implements Serializable {
  private String message;

  public Message (String msg) {
    message = msg;
  }

  public String getMessage() {
    return message;
  }
  
  public void setMessage (String msg) {
    message = msg;
  }
}
Client
codice:
import java.net.*;
import java.io.*;

class Client {
  public static void main (String [] args){
    try {
    Client chatclient = new Client();
    } catch (Exception e) {
      System.err.println("Errore di I/O :" + e);
    }
  }

  public static final int porta = 1428;
  public Message message = new Message ("");

  public Client () throws Exception {
    //Apro una socket per leggere e scrivere
    Socket client = new Socket (InetAddress.getLocalHost() , porta);
    System.out.println("Connesso con il server!");    
    ObjectInputStream ois;
    ObjectOutputStream oos;
    
    //Ora leggo e scrivo
    while (true) {
      oos = new ObjectOutputStream ( client.getOutputStream() );
      EasyIn easy = new EasyIn ();
      System.out.print("Digita il tuo messaggio: ");
      message = new Message ( easy.readString() );
      oos.writeObject(message);
	  oos.flush();
      ois = new ObjectInputStream ( client.getInputStream() );
      String INmessage = ( ((Message) ois.readObject()).getMessage() );
      System.out.println( INmessage );
/*      ois.close();
      System.out.println ("Ho chiuso lo stream di Input");
      oos.close();
      System.out.println ("Ho chiuso lo stream di Output"); 
*/
    }
  }
}
Server
codice:
import java.net.*;
import java.io.*;

class Server {
  public static void main (String [] args){
    try {
    Server chatserver = new Server();
    } catch (IOException e) {
      System.err.println("Errore di IO" + e);
    }
  }

  public static final int porta = 1428;

  public Server () throws IOException {
    ServerSocket server = new ServerSocket (porta);
    while (true) {
      Socket client = server.accept();
      System.out.println("Connection Accepted");
      Thread connection = new ServerThread ( client.getInputStream() , client.getOutputStream() );
      connection.start();
    }
  }
}
Server Thread
codice:
import java.net.*;
import java.io.*;

public class ServerThread extends Thread {
  private ObjectInputStream input;
  private ObjectOutputStream output;

  public ServerThread (InputStream is, OutputStream os) {
  	try {
  		input = new ObjectInputStream ( is );
 	 	output = new ObjectOutputStream ( os );
 	 } catch ( Exception e) {
 	 	System.err.println ("Errore nel costruttore del Thread del Server: " + e );
 	 }
  }

  public void run () {
  	try {
   		while (true) {
   			System.out.println ("Leggo il messaggio in input e la stampo a video");
   			String Messaggio = ( ((Message) input.readObject() ).getMessage() );
   	 		System.out.println(Messaggio);
   	 		System.out.println ("Provo a inviare un messaggio");
	   	 	Message conferma = new Message ("Messaggio ricevuto!");
 	  	 	output.writeObject (conferma);
  	 	 	output.flush();
  	 	 	System.out.println ("Svuotato il buffer di output,adesso riparto!");
  	 	 	//output.close();
  	 	 	//input.close();
  	 	}
  	} catch (Exception e) {
  		System.err.println ("Errore nel Thread del Server: "+ e );
  	}
  }
}
EasyIn
codice:
// Simple input from the keyboard for all primitive types. ver 1.0
// Copyright (c) Peter van der Linden, May 5 1997.
//      corrected error message 11/21/97
//
// The creator of this software hereby gives you permission to:
// 1. copy the work without changing it
// 2. modify the work providing you send me a copy which I can
//      use in any way I want, including incorporating into this work.
// 3. distribute copies of the work to the public by sale, lease,
//      rental, or lending
// 4. perform the work
// 5. display the work
// 6. fold the work into a funny hat and wear it on your head.
//
// This is not thread safe, not high performance, and doesn't tell EOF.
// It's intended for low-volume easy keyboard input.
// An example of use is:
//      EasyIn easy = new EasyIn();
//      int i = easy.readInt();
// reads an int from System.in
//      float f = easy.readFloat();
// reads a float from System.in

import java.io.*;
import java.util.*;

class EasyIn {
static InputStreamReader is = new InputStreamReader( System.in );
static BufferedReader br = new BufferedReader( is );
StringTokenizer st;

StringTokenizer getToken() throws IOException { 
String s = br.readLine();
return new StringTokenizer(s);
}

boolean readBoolean() {
try {
st = getToken();
return new Boolean(st.nextToken()).booleanValue(); } catch (IOException ioe) {
System.err.println("IO Exception in EasyIn.readBoolean"); return false;
}
}

byte readByte() {
try {
st = getToken();
return Byte.parseByte(st.nextToken());
} catch (IOException ioe) {
System.err.println("IO Exception in EasyIn.readByte");
return 0;
}
}

short readShort() {
try {
st = getToken();
return Short.parseShort(st.nextToken()); } catch (IOException ioe) {
System.err.println("IO Exception in EasyIn.readShort");
return 0;
}
}

int readInt() {
try {
st = getToken();
return Integer.parseInt(st.nextToken()); } catch (IOException ioe) {
System.err.println("IO Exception in EasyIn.readInt");
return 0;
}
}

long readLong() {
try {
st = getToken();
return Long.parseLong(st.nextToken());
} catch (IOException ioe) {
System.err.println("IO Exception in EasyIn.readLong");
return 0L;
}
}

float readFloat() {
try {
st = getToken();
return new Float(st.nextToken()).floatValue(); } catch (IOException ioe) {
System.err.println("IO Exception in EasyIn.readFloat");
return 0.0F;
}
}

double readDouble() {
try {
st = getToken();
return new Double(st.nextToken()).doubleValue(); } catch (IOException ioe) {
System.err.println("IO Exception in EasyIn.readDouble");
return 0.0;
}
}

char readChar() {
try {
String s = br.readLine();
return s.charAt(0);
} catch (IOException ioe) {
System.err.println("IO Exception in EasyIn.readChar");
return 0;
}
}

String readString() {
try {
return br.readLine();
} catch (IOException ioe) {
System.err.println("IO Exception in EasyIn.readString");
return "";
}
}

// This method is just here to test the class 
public static void main (String args[]){ 
EasyIn easy = new EasyIn();

System.out.print("enter char: ");
System.out.flush();
System.out.println("You entered: " + easy.readChar() ); 

System.out.print("enter String: ");
System.out.flush();
System.out.println("You entered: " + easy.readString() ); 

System.out.print("enter boolean: ");
System.out.flush();
System.out.println("You entered: " + easy.readBoolean() ); 

System.out.print("enter byte: ");
System.out.flush();
System.out.println("You entered: " + easy.readByte() ); 

System.out.print("enter short: ");
System.out.flush();
System.out.println("You entered: " + easy.readShort() ); 

System.out.print("enter int: ");
System.out.flush();
System.out.println("You entered: " + easy.readInt() ); 

System.out.print("enter long: ");
System.out.flush();
System.out.println("You entered: " + easy.readLong() ); 

System.out.print("enter float: ");
System.out.flush();
System.out.println("You entered: " + easy.readFloat() ); 

System.out.print("enter double: ");
System.out.flush();
System.out.println("You entered: " + easy.readDouble() ); }

}
Grazie per la disponibilità

Alder