2015-01-03 5 views
0

У меня проблема, когда мой сервер подключен к клиенту, это исключение происходит, тогда моя программа не отвечает после подключения. Я использую конструктор gui netbeans для сгенерированного кода для класса gui. Я также прокомментирую номер строки, который показан ниже в моем коде для вас, ребята, рассматривающие. Все работы находят, прежде чем сокет примет. Пожалуйста помоги!Java Gui Thread Coding?

Исключение в потоке "Thread-0" java.lang.NullPointerException в serverui.ServerUi.StartServer (ServerUi.java:62) в serverui.ServerThread.run (ServerUi.java:19) в Явы .lang.Thread.run (Thread.java:745)

class ServerThread implements Runnable{ 

public void run(){ 
try { 
     ServerUi t = new ServerUi(); 
     t.StartServer(); //Line 19 
    } catch (IOException ex) { 
     //Logger.getLogger(ServerThread.class.getName()).log(Level.SEVERE, null, ex); 
     } catch (InterruptedException ex) { 
      //Logger.getLogger(ServerThread.class.getName()).log(Level.SEVERE, null, ex); 
     } 
    } 

} 


public class ServerUi { 
byte s = 0; 
static ServerSocket serverSocket = null; 
Socket clientSocket = null; 
PrintWriter out = null; 
BufferedReader in = null; 
public static boolean checklisten = false; 
static gui winframe = null; 
public static void main(String[] args)throws IOException { 

winframe = new gui(); 
serverSocket = new ServerSocket(10007); 
Thread tserver = new Thread(new ServerThread()); 
tserver.start(); 

java.awt.EventQueue.invokeLater(new Runnable() { 
      public void run() { 
       winframe.setVisible(true); 
      } 
     }); 


    } 

    public void StartServer()throws IOException, InterruptedException 
    { 

       winframe.displayMessage("Listening for Connection"); 
       clientSocket = serverSocket.accept(); 
       winframe.displayMessage("Connected"); 
       String inputLine; 
       while(true){ 
       while((inputLine=in.readLine()) != null) // Line 62 
       { 

        winframe.displayMessage("Server: "+ inputLine); 
        out.println(inputLine); 

        if(inputLine.equals("Bye.")) 
        { 
         this.Closeconnection(); 
         break; 
        } 

        if(winframe.checkdisconnectbtn == true) 
        { 
         this.Closeconnection(); 
         break; 
        } 

       } 

       } 
    } 
+0

Удалены «[Решено: Просто не хватает и аудиовыход инициализации]». Из названия путем отбрасывания правку. Вместо этого вы должны принять ответ, который помог вам, или опубликовать собственное решение. –

ответ

4

Вы никогда не инициализировать BufferedReader.

BufferedReader in = null; 

... поэтому эта линия не может с NullPointerException:

while((inputLine=in.readLine()) != null) // Line 62 

В общем, когда вы видите NullPointerException, все, что вам нужно сделать, это посмотреть на линии и проверить все объекты, которые вызывают методы для null.

+0

Спасибо, сэр! Мне этого не хватает. –

+1

@SarinSuriyakoon Любое время! Рад, что это тебе помогло. :) В общем, всякий раз, когда вы видите 'NullPointerException', просто посмотрите на строку и проверьте все переменные, вызывающие методы для' null'. – asteri

Смежные вопросы