Ragazzi ho un problema.
Voglio creare un sistema client / server:
il client scrive una stringa e lo invia al server
il server riceve il messaggio e lo stampa e aggiunge un altro pezzo alla stringa e lo rimanda al client.
Allora per quanto riguarda la comunicazione client verso server funziona correttamente, quando invece il server deve inviare al client, mi genera un eccezione ecco i codici:
questo è il server1.java
questo è il clientcodice:/*Un server di prova x comunicare cn un client. Questo è un server echo, che accetta solo una connessione per volta da un client e verrà lanciato sul localhost (127.0.0.1)*/ import java.io.*; import java.net.*; public class Server1 { //Variabili d'istanza private BufferedReader bufread = null; private BufferedWriter bufwrite = null; private ServerSocket server = null; private String prova = null; //Metodi della classe Server1 public void startServer () { try{ server = new ServerSocket (9000); System.out.println ("Server Avviato!..."); } catch (IOException e){ System.err.println("Errore: Creazione porta"); e.printStackTrace(); } } public void runServer() { try{ //Socket del Server che si mette in attesa Socket server_ascolto = server.accept(); System.out.println("Connessione stabilita con: "+server_ascolto.getInetAddress()); //Canale di input associato al socket InputStreamReader in_str = new InputStreamReader(server_ascolto.getInputStream()); //canale di output associato al socket OutputStreamWriter out_str = new OutputStreamWriter(server_ascolto.getOutputStream()); //Inizializzazione Buffer in lettura e scrittura bufread = new BufferedReader (in_str); bufwrite = new BufferedWriter (out_str); prova = bufread.readLine(); bufread.close(); bufwrite.write("Hai scritto: "+prova); bufwrite.newLine(); bufwrite.flush(); bufwrite.close(); } catch (IOException e){ System.err.println("Errore!! Avvio il server in ascolto"); e.printStackTrace(); } } //Main() public static void main (String[] args){ Server1 server = new Server1(); server.startServer(); while (true){ server.runServer(); } } }
GRAZIE RAGAZZI PER L'ATTENZIONEcodice:/*Client di prova che stabilisce una connessione con il Server1*/ import java.io.*; import java.net.*; public class Client1 { //Variabili d'istanza private BufferedWriter bufwrite = null; private BufferedReader bufread = null; private Socket client = null; private String prova = null; private String host = "127.0.0.1";//localhost (provvisoria in attesa di un codice definitivo) private int port = 9000; //Quella di default del server public void runClient(){ try{ client = new Socket(host, port); //Canale di input associato al socket InputStreamReader in_str = new InputStreamReader(client.getInputStream()); //canale di output associato al socket OutputStreamWriter out_str = new OutputStreamWriter(client.getOutputStream()); //Inizializzazione Buffer in lettura e scrittura bufread = new BufferedReader (in_str); bufwrite = new BufferedWriter (out_str); bufwrite.write("ciao!"); bufwrite.newLine(); bufwrite.flush(); bufwrite.close(); prova = bufread.readLine(); bufread.close(); System.out.println ("Client: "+prova); } catch (ConnectException conExc){ System.err.println("Errore di connessione"); } catch (IOException e){ System.err.println("Errore!! Avvio il server in ascolto"); e.printStackTrace(); } } public static void main (String[] args){ Client1 client = new Client1(); client.runClient(); } }![]()

Rispondi quotando
