Exception in thread

Folgenden Fehler sind behoben, durch das entfernen der Erklärung aber ein anderes ist aufgetaucht, die es vorher nicht gab.

Empfang von zwei Fehlern keine Einsicht wäre toll, danke.

Exception in thread "main" java.lang.NullPointerException
bei ChatClient.(ChatClient.java:27)
bei ChatClient.main(ChatClient.java:59)

Aus der folgenden ChatClient:

import java.net.*;
import java.io.*;

public class ChatClient
{  private Socket socket              = null;
   private BufferedReader  console   = null;
   private BufferedReader  streamIn   = null;
   private DataOutputStream streamOut = null;

   public ChatClient(String serverName, int serverPort, String userName)
   {  System.out.println("Establishing connection. Please wait...");
      try
      {  socket = new Socket(serverName, serverPort);
         System.out.println("Connected: " + socket);
         System.out.println("CTRL+C or type .bye to quit");
         start();
      }
      catch(UnknownHostException uhe)
      {  System.out.println("Host unknown: " + uhe.getMessage());
      }
      catch(IOException ioe)
      {  System.out.println("Unexpected exception: " + ioe.getMessage());
      }
      String line = "";
      while (!line.equals(".bye"))
      {  try
         {  line = console.readLine();
            streamOut.writeBytes(line + '\n'); //Send console data to server socket
            String reply = streamIn.readLine(); //Recieve confirmation msg from server
            System.out.println( reply ); //Print the msg
            streamOut.flush();
         }
         catch(IOException ioe)
         {  System.out.println("Sending error: " + ioe.getMessage());
         }
      }
   }
   public void start() throws IOException
   {  console = new BufferedReader(new InputStreamReader(System.in)); //Changed console to BufferedReader
      streamIn  = new BufferedReader(new InputStreamReader(socket.getInputStream()));
      streamOut = new DataOutputStream(socket.getOutputStream());
   }
   public void stop()
   {  try
      {  if (console   != null)  console.close();
         if (streamOut != null)  streamOut.close();
         if (streamIn != null)  streamIn.close(); //Is it good practice to close
         if (socket    != null)  socket.close();
      }
      catch(IOException ioe)
      {  System.out.println("Error closing ...");
      }
   }
   public static void main(String args[])
   {  ChatClient client = null;
      if (args.length != 3)
         System.out.println("Usage: java ChatClient host port username");
      else
         client = new ChatClient(args[0], Integer.parseInt(args[1]), args[2]);
   }
}

und dieser Fehler:

Exception in thread "Thread-1" java.lang.NullPointerException
        at ChatServerThread.handleClient(ChatServerThread.java:41)
        at ChatServerThread.run(ChatServerThread.java:17)

vom ChatServerThread:

import java.net.*;
import java.io.*;

//public class ChatServerThread implements Runnable
public class ChatServerThread extends Thread
{  private Socket          socket   = null;
   private ChatServer      server   = null;
   private int             ID       = -1;
   private BufferedReader streamIn =  null;
   private DataOutputStream streamOut = null;

   public ChatServerThread(ChatServer _server, Socket _socket)
   {  server = _server;  socket = _socket;  ID = socket.getPort();
   }
   public void run() {
   try {
       handleClient();
   } catch( EOFException eof ) {
        System.out.println("Client closed the connection.");
   } catch( IOException ioe ) {
        ioe.printStackTrace();
   }
}

   public void handleClient() throws IOException {
      boolean done = false;
      try {
      System.out.println("Server Thread " + ID + " running.");
      while (!done) {
        String nextCommand = streamIn.readLine();
        if( nextCommand.equals(".bye") ) {
           System.out.println("Client disconnected with bye.");
           done = true;
        } else {
           System.out.println( nextCommand );
           String nextReply = "You sent me: " + nextCommand.toUpperCase() + '\n';
           streamOut.writeBytes ( nextReply );
        }
     }
   } finally {
     streamIn.close();
     streamOut.close();
     socket.close();
   }
   }
   public void open() throws IOException
   {
      streamIn = new BufferedReader(new InputStreamReader(socket.getInputStream()));
      streamOut = new DataOutputStream(socket.getOutputStream());
   }
   public void close() throws IOException
   {  if (socket != null)    socket.close();
      if (streamIn != null)  streamIn.close();
      if (streamOut != null) streamOut.close();
   }
}
  • Bitte in der code-was exakte Linien verursacht werden diese Fehler Dank.
  • Welche Zeilen in Ihr Muster hat die NPE entsprechen. Etwas, was in dieser Zeile null sein müssen. Vielleicht haben Sie nicht rufen start() irgendwo?
  • Aktualisierte Antwort vom feedback unter, aber ein weiterer thread Ausgabe erschienen.
InformationsquelleAutor Astron | 2012-02-29
Schreibe einen Kommentar