我做的是简单聊天软件,服务器运行事没报错的,但运行客户端后,服务器就出现下面的错误:
Exception in thread "main" java.lang.NullPointerException
        at myprojects.chatserver.ChatServer.receive(ChatServer.java:80
        at myprojects.chatserver.ChatServer.SEMF(ChatServer.java:36)
        at myprojects.chatserver.ChatServer.main(ChatServer.java:108)
这是什么问题?

解决方案 »

  1.   

    我的代码如下,帮我看看是什么问题导致出现上面的错误:import java.io.*;
    import java.awt.*;
    import java.net.*;
    import java.awt.event.*;
    import java.util.Calendar;class ChatServer extends Frame
    {
    TextArea showData = null;
    ServerSocket ss = null;
    Socket s = null;
    InputStream is = null;
    DataInputStream dis = null;
    static int totalClient=0; public void SEMF()
    {
    showData = new TextArea("",6,35,3);
    add(showData);
    try
    {
    ss = new ServerSocket(5678);
    }
    catch(IOException e1)
    {
    System.out.println("不能监听5678端口!");
    }
    addWindowListener(new SEWindowMonitor());
    while(true)
    {
    monitorClient();
    receive();
    }
    } void monitorClient()
    {
    try
    {
    Socket s=ss.accept();

    totalClient++;

    }
    catch(IOException ie)
    {
    System.out.println("cann't listen to client!");

    System.exit(-1);

    }
    }

    void receive(){
    try{
    is=s.getInputStream();
    dis=new DataInputStream(is);
    String Ms=dis.readUTF();
    showData.append(Ms + "\n");
    System.out.println(Ms);
    }catch(IOException ie){
    System.out.println("cann't receive message");
    }
    }
    class SEWindowMonitor extends WindowAdapter
    {
    public void windowClosing(WindowEvent e)
    {
    setVisible(false);
    System.exit(0);
    }
    } public static void main(String args[])
    {
    ChatServer SEmainFrame = new ChatServer();
    SEmainFrame.setSize(300,200);
    SEmainFrame.setTitle("服务器");
    SEmainFrame.setResizable(false);
    SEmainFrame.setVisible(true);
    SEmainFrame.SEMF();
    }
    }
      

  2.   

    Socket   s=ss.accept(); —> s = ss.accept();
      

  3.   

    已经在同学的帮助下解决了,是Socket   s=ss.accept(); 的问题,我重复定义了!
    多谢 4楼 的解决办法!