当前位置: 代码迷 >> J2SE >> Exception in thread "main" java.lang.NullPointerException at Server.main(Server.java:22),该如何解决
  详细解决方案

Exception in thread "main" java.lang.NullPointerException at Server.main(Server.java:22),该如何解决

热度:479   发布时间:2016-04-24 00:43:05.0
Exception in thread "main" java.lang.NullPointerException at Server.main(Server.java:22)
详见代码,结果如下:
正在监听Exception in thread "main" java.lang.NullPointerException
at Server.main(Server.java:22)

Java code
import java.io.*;import java.net.*;import java.util.*;import java.awt.*;public class Server{    public static void main(String args[])   {        ServerSocket server=null;      ServerThread thread;      Socket  you=null;      while(true)        {            try{                  server=new ServerSocket(4331);//创建在端口4331上负责监听的 ServerSocket对象。              }          catch(IOException e1)              {                  System.out.println("正在监听");                }           try{                  you=server.accept();// server返回和客户端相连接的Socket对象。                System.out.println("客户的地址:"+you.getInetAddress());                             }         catch (IOException e)             {                  System.out.println("正在等待客户");             }         if(you!=null)          {              new ServerThread(you).start(); //为每个客户启动一个专门的线程。           }     else          {              continue;         }      }   }}class ServerThread extends Thread{     Socket socket;   ObjectInputStream in=null;    ObjectOutputStream out=null;   String s=null;   ServerThread(Socket t)   {        socket=t;      try  {              out=new ObjectOutputStream(socket.getOutputStream()); //socket返回输出流。             in=new ObjectInputStream(socket.getInputStream()); //socket返回输入流。           }      catch (IOException e)          {}   }     public void run()           {       TextArea text=new TextArea("你好,我是服务器",12,12);      try         {             out.writeBytes(text.getText());          out.flush();          //out写对象text到客户端。         }      catch (IOException e)          {                 System.out.println("客户离开");         }   } }


另外,附上客户端代码:
Java code
import java.net.*;import java.io.*;import java.awt.*;import java.awt.event.*;class Client extends Frame implements Runnable,ActionListener{     Button connection;   Socket socket=null;   ObjectInputStream in=null;    ObjectOutputStream out=null;   Thread thread;    public  Client()   {        socket=new Socket();                    connection=new Button("连接服务器,读取文本区对象");      add(connection,BorderLayout.NORTH);      connection.addActionListener(this);      thread = new Thread(this);      setBounds(100,100,360,310);      setVisible(true);      addWindowListener(new WindowAdapter()                          {                                         public void windowClosing(WindowEvent e)                            {                                System.exit(0);                            }                            }                       );   }   public void run()   {      while(true)       {              try{                   TextArea text=(TextArea)in.readObject();                   add(text,BorderLayout.CENTER);                 validate();              }           catch(Exception e)                {                    break;               }        }  }  public void actionPerformed(ActionEvent e)  {     if(e.getSource()==connection)    {        try         {             if(socket.isConnected())              {                              }             else              {                InetAddress  address=InetAddress.getByName("127.0.0.1");                InetSocketAddress socketAddress=new InetSocketAddress(address,4331);//创建端口为4331、地址为                                                      //address的socketAddress               socket.connect(socketAddress) ;//socket建立和socketAddress的连接呼叫。                in =new ObjectInputStream(socket.getInputStream()); //socket返回输入流。                out = new ObjectOutputStream(socket.getOutputStream()); //socket返回输出流。                thread.start();              }         }         catch (Exception ee){}    }  }  public static void main(String args[])  {       Client win=new  Client();  }}
  相关解决方案