Non c'è nulla di difficile o con cui fare confuzione: gli InputStream (come dice il nome) servono per leggere, mentre gli OutputStream (sempre come dice il nome) servono per scrivere.
Allora... se la comunicazione avviene in modo unidirezionale, allora non ti serve un InputStream sul server, dato che, come hai richiesto nel post, devi inviare una stringa dal server al client.
Quindi, sul server ti serve un OutputStream (il server, scrive) e sul client ti serve un InputStream (il client legge).
A questo punto il tuo codice diventa questo:
Nota che ho utilizzato un ObjectInputStream, in quanto tu trasmetti un oggetto di tipo String sulla Socket, quindi dall'altra parte devo prepararmi a leggere degli oggetti.codice:import java.io.*; import java.net.*; class SempliceServer{ SempliceServer() throws IOException { ServerSocket Server = new ServerSocket(2000); InetAddress IndirizzoServer = InetAddress.getLocalHost(); System.out.println("\nSERVER - HOST: " + IndirizzoServer + " in ascolto sulla PORTA: " + Server.getLocalPort() + "\n"); System.out.println("\nAttendo nuove connessioni...."); Socket Client = Server.accept(); System.out.println("\n\nSi è connesso l' HOST: " + Client.getInetAddress() + " alla PORTA: " + Client.getLocalPort()); /* CREAZIONE STREAM CON CLIENT */ OutputStream Output = Client.getOutputStream(); PrintStream PrintStr = new PrintStream(Output); } /* METODO PER L'INVIO DI MESSAGGI AL CLIENT */ public void InvioMessaggioClient() throws IOException{ String InputLine = null; System.out.println("\nInvia il messaggio: \n"); /* PER PRENDERE UN INPUT DA TASTIERA */ BufferedReader br = new BufferedReader( new InputStreamReader(System.in) ); InputLine = br.readLine(); PrintStr.println(InputLine); } } public class server{ public static void main(String args[]) throws IOException{ SempliceServer Server = new SempliceServer(); Server.InvioMessaggioClient(); } } -------------------------------------------------------------------------------- -------------- CLIENT ----------------------- import java.io.*; import java.net.*; class SempliceClient{ SempliceClient() throws IOException{ InetAddress IndirizzoServer = InetAddress.getByName("192.168.0.1"); InetAddress IndirizzoClient = InetAddress.getLocalHost(); int porta = 2000; Socket Client = new Socket(IndirizzoServer,porta); System.out.println("\nCLIENT - HOST: " + IndirizzoClient + " PORTA: " + Client.getLocalPort() + "\n"); System.out.println("\nMi sono connesso all' HOST: " + Client.getInetAddress() + " PORTA: " + Client.getPort()); ObjectInputStream input = new ObjectInputStream ( Client.getInputStream() ); // LETTURA STREAM ??????????????????????? String messaggio = (String) input.readObject(); System.out.println("Il server ha inviato questo messaggio:"); System.out.println(messaggio); } } public class client{ public static void main(String[]args) throws IOException{ try{ SempliceClient Client = new SempliceClient(); }catch (IOException ex) { ex.printStackTrace (); } } }
Ciao.![]()



Rispondi quotando