2012-11-28 386 views
2

对于我正在创建一个简单的客户端/服务器的类。客户端打开一个jframe,用户输入主机和端口号。如果建立连接,则打开另一个具有keylistener的jframe。服务器的jtextarea中显示客户端输入的内容。我能够在客户端和服务器之间建立连接,但在此之后,我立即遇到空指针异常。我想我应该在我的服务器中使用比bufferedreader更多的东西,或者如果我可以阻止服务器读取内容,直到实际输入内容为止?还是我在做其他事情完全错误?任何帮助将不胜感激,相关的代码如下。BufferedReader,客户端/服务器

public class TypeServer extends JPanel { 

BufferedReader lnr; 


public TypeServer(Socket soc) throws IOException { 

    InputStream inStream = soc.getInputStream(); 
    InputStreamReader isr = new InputStreamReader(inStream); 
    BufferedReader lnr = new BufferedReader(isr); 


} 
//below is in the main function 
try { 
     ServerSocket srv = new ServerSocket(5555); 
     Socket soc=srv.accept(); 
     while (true) { 


      // Create server 
      TypeServer tc = new TypeServer(soc); 
      String line=tc.lnr.readLine(); 
      textArea.append(line); 
      srv.close(); 
      soc.close(); 

     } 
    } 

编辑:我对之前不包括此道歉,但 字符串行= tc.lnr.readLine(); 线打空指针异常

+0

哪条线打下面的您正在使用的实例变量

String line=tc.lnr.readLine(); //lnr is not initialized 

空指针异常? –

回答

1

在你的主你必须改变

BufferedReader lnr = new BufferedReader(isr); //initializing the local variable 

this.lnr = new BufferedReader(isr); 
+0

谢谢Bhesh。我很感激。我会确保在允许的情况下接受答案。 – Nolan

+0

不客气。 –