我正在为我正在构建的应用程序的网络部分进行一种测试运行,并且我遇到了一个问题,我从客户端发送到服务器的每条消息都附加到它的末尾。例如"你好"将由服务器打印为" 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);
}
}
}
}
}
提前感谢您的帮助...
答案 0 :(得分:-1)
Socket con = serv.accept(); 你需要一个实例Socket作为方法accept(),因为如果没有任何客户端(Socket实例),它可能会在你的代码中抛出nullpointerexception