Ciao, vorrei creare una semplicissima chat. Ho seguito una guida ma non riesco a capire dove è il problema:
client:
server:codice:package chat; import java.net.*; import java.io.*; public class Client { private Socket connessione; private BufferedReader dalServer; private PrintStream alServer; private String name; public Client(String name) { this.name = name; BufferedReader t = new BufferedReader(new InputStreamReader(System.in)); try { System.out.println("Inserire indirizzo server: "); String indirizzo = t.readLine(); connessione = new Socket(indirizzo, 1000); dalServer = new BufferedReader(new InputStreamReader(connessione.getInputStream())); alServer = new PrintStream(connessione.getOutputStream()); } catch(IOException e) { System.out.println(e); } } public void conversazione() { String messaggio = ""; BufferedReader t = new BufferedReader(new InputStreamReader(System.in)); try { while(!messaggio.equals("/logout")) { messaggio = alServer.readLine(); System.out.println(messaggio); if(!messaggio.equals("/logout")) { messaggio = t.readLine(); alServer.println(name+" scrive: "+messaggio); } } connessione.close(); } catch(IOException e) { System.out.println("Conversazione interrotta");} }
ProvaServer:codice:package chat; import java.net.*; import java.io.*; public class Server { private ServerSocket server; private Socket connessione; private BufferedReader dalClient; private PrintStream alClient; private String name; public Server(String name) { this.name = name; try { server = new ServerSocket(1000, 5); System.out.println("Server attivo"); connessione = server.accept(); dalClient = new BufferedReader(newInputStreamReader(connessione.getInputStream())); alClient = new PrintStream(connessione.getOutputStream()); } catch(IOException e) { System.out.println(e);} } public void conversazione() { String messaggio = ""; BufferedReader t = new BufferedReader(new InputStreamReader(System.in)); try { alClient.println(" - Sei connesso al server! Digita /logout per effetuare la disconnessione."); while(!messaggio.equals("/logout")) { messaggio = dalClient.readLine(); System.out.println(messaggio); if(!messaggio.equals("/logout")) { messaggio = t.readLine(); alClient.println(name+" scrive: "+messaggio); } } } catch(IOException e) { System.out.println("Conversazione interrotta"); } } }
Prova Client:codice:package chat; public class ProvaServer { public static void main(String[] args) { Server s = new Server(args[0]); s.conversazione(); }}
La guida diceva di eseguire il ProvaServer e poi il ProvaClient.codice:package chat; public class ProvaClient { public static void main(String[] args) {Client c = new Client(args[0]); c.conversazione(); } }
Ma quando provo ad eseguirli mi dà l'errore:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException
Come lo posso risolvere?Grazie

Rispondi quotando


