Ciao, vorrei creare una semplicissima chat. Ho seguito una guida ma non riesco a capire dove è il problema:

client:


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");} 	}
server:

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"); 		} 	}  }
ProvaServer:

codice:
package chat;  
public class ProvaServer { 	
public static void main(String[] args) {		Server s = new Server(args[0]); 		s.conversazione(); 	 }}
Prova Client:

codice:
 
package chat;  
public class ProvaClient {
public static void main(String[] args) {Client c = new Client(args[0]); 		c.conversazione(); 	} }
La guida diceva di eseguire il ProvaServer e poi il ProvaClient.
Ma quando provo ad eseguirli mi dà l'errore:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException

Come lo posso risolvere?Grazie