我从客户端发送到服务器的每条消息都以NullPointerException结束。我如何解决它?

时间:2017-04-18 01:42:19

标签: java nullpointerexception server network-programming

我正在为我正在构建的应用程序的网络部分进行一种测试运行,并且我遇到了一个问题,我从客户端发送到服务器的每条消息都附加到它的末尾。例如"你好"将由服务器打印为" hellonull"。

实际应用程序需要能够发送服务器将读取的命令。此测试仅打印消息。我发现这是df.groupby(['date', 'trader_id']).filter(lambda g: (g.type == "Sell").all() or (g.type == "Buy").all()) 的问题,但我不明白的是NullPointerException来自哪里。它是流的结尾吗?我以为流的结尾将用-1表示。如果null确实指示了流的结尾,那么如何在不到达null的情况下退出流?

这是服务器的主要类:

null

这是Runnable类:

package servertester;
import java.io.*;
import java.net.*;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;

public class ServerLaunch {

public static void main(String[] args) throws IOException{

        final int PORT = 4444;
        final int NUM_THREADS = 50;

            ExecutorService pool = Executors.newFixedThreadPool(NUM_THREADS);

            try(ServerSocket serv = new ServerSocket(PORT)){
                while(true){
                    try{
                        Socket con = serv.accept();
                        Runnable r = new      ServerRunnable(con);
                        Future<?> future = pool.submit(r);
                        String msg = (String) future.get();
                        System.out.println(msg);

                    }catch(Exception e){
                        System.out.println(e);
                    }


    }

}
}
}

提前感谢您的帮助...

1 个答案:

答案 0 :(得分:-1)

Socket con = serv.accept();  你需要一个实例Socket作为方法accept(),因为如果没有任何客户端(Socket实例),它可能会在你的代码中抛出nullpointerexception