Cool, es klappt! Also zumindest das eine
Es gibt jetzt beim herstellen der Verbindung keine NullPointerException mehr. Danke!
Jetzt gibt es wieder ein anderes Problem.Wieder eine NullPointerException. Allerdings erst, wenn der oben erwähnte String "identitiy", der die ID des Plugins enthällt, gesendet wurde. Die Fehlerausgabe ist folgende:
Exception in thread "Thread-2" java.lang.NullPointerException
at main.RSS.registerPlugin(RSS.java:9)
at main.Client.start(Client.java:41)
at main.Client.<init>(Client.java:26)
at main.Server.run(Server.java:19)
at java.lang.Thread.run(Thread.java:595)
Da ich am Code von Client.java noch ein bisschen gewerkelt hab ist hier ein update:
Der wesentliche Unterschied besteht darin, das der Thread jetzt nicht mehr Client selber sonder eine Unterklasse, Input, ist.Code:import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintStream; import java.net.Socket; public class Client { private Socket s; private Thread t; private BufferedReader in; private PrintStream out; private int id; public Client(Socket cs) throws IOException { s = cs; in = new BufferedReader(new InputStreamReader(s.getInputStream())); out = new PrintStream(s.getOutputStream()); id = Integer.parseInt(in.readLine()); start(); } public final int getID() { return id; } public void sendMessage(String msg) { out.print(msg); } private void start() { RSS.registerPlugin(getID(), this); t = new Thread(new Input()); t.start(); } private void end() throws IOException, InterruptedException { RSS.unregisterPlugin(getID()); s.close(); t.join(); } class Input implements Runnable { public void run() { try { while(s.isConnected() == true) { String input = in.readLine(); int tgid = Byte.parseByte(input.substring(0,2)); String msg = input.substring(2); RSS.messagePlugin(tgid,msg,id); } if(s.isClosed() == true) end(); else run(); } catch(IOException e) { System.out.println(e.getMessage()); } catch(InterruptedException e) { System.out.println(e.getMessage()); } } } }
Der betreffende Code aus RSS.java ist folgender:
Ich hoffe mir kann jemand helfen?Code:private static Client clients[]; public static void registerPlugin(int id, Client client) { clients[id] = client; }
Danke.
Gruß, Jan.







Zitieren

Lesezeichen