Salve a tutti! E' il mio primo post, per cui mi presento. Mi chiamo Adriano e studio ingegneria informatica. Posto il codice per chiarezza, lo commenterò alla fine.
Dunque questo server deve gestire le richieste di due client: taxi e cliente. Per ora ho implementato solo la parte relativa al taxi. L'errore è alla riga 53 ovverocodice:import java.io.*; import java.lang.*; import java.util.*; import java.net.*; //Devo fare in modo che partano due thread, uno per il cliente e uno per il taxi public class Gestore implements Runnable{ private LinkedList <Taxi> taxilist = new LinkedList <Taxi> (); private ServerSocket ss; private DataInputStream is; private DataOutputStream os; private ObjectInputStream ois; private BufferedReader br; private Gestore gest; private Socket cs; public static void main(String args[]) throws IOException{ System.out.println("Sono il Server Gestore"); Gestore g = new Gestore(); g.init(); } public void init(){ try{ ss = new ServerSocket(50000); while(true){ cs = ss.accept(); os = new DataOutputStream(cs.getOutputStream()); is = new DataInputStream(cs.getInputStream()); br = new BufferedReader(new InputStreamReader(cs.getInputStream())); System.out.println("Identificazione In corso"); boolean id; id = is.readBoolean();//se leggo true è un taxi, se leggo false è un cliente Thread.sleep(5000); if(id == true){ gest = new Gestore(); Thread tg = new Thread(gest); tg.start(); } } } catch(IOException e) {System.out.println("Error "+e);} catch(InterruptedException e) {System.out.println("Error "+e);} } public void run(){ //thread taxi try{ System.out.println("Benvenuto Taxi"); //Qui si blocca, dice che lo stream is è null //se copio il codice dentro l'if invece che far partire il thread funziona. int x = is.readInt(); int y = is.readInt(); boolean libero = is.readBoolean(); int tid = taxilist.size()+1; os.writeInt(tid); Posizione pos = new Posizione(x,y); Taxi taxiapp = new Taxi(pos,libero,tid); taxilist.add(taxiapp); os.writeBoolean(true); } catch(IOException e){System.out.println("Errorrrrrrrr");} } }
A runtime ricevo una eccezzione di tipo NullPointerException quindi è come se lo stream is sia null. Dentro il metodo init() gli stream funzionano perfettamente, quindi il problema è evidentemente del run(). Spero di essere stato chiaro e vi ringrazio per l'attenzionecodice:int x = is.readInt();![]()

Rispondi quotando


