我试图创建一个可以存储在数组中的线程类,这将使我更容易处理从客户端到服务器的用户输入。
这是我的 PongPlayerThread
package Pong;
import java.net.*;
import java.io.*;
public class PongPlayerThread extends Thread
{
private Socket socket = null;
private String pongData = "";
public PongPlayerThread()
{
//clear
}
public PongPlayerThread(Socket socket, int id, String data)
{
//super("PongPlayerThread");
pongData = data;
this.socket = socket;
}
public void passData(String data)
{
pongData = data;
}
public void run()
{
try
{
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
while(true)
{
out.println(pongData);
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
现在在我的服务器上的这一行中,客户端可以连接
players[0] = new PongPlayerThread(serverSocket.accept(), 0, rtnInfo()).start();
我收到此错误“无法从 void 转换为 PongPlayerThread”,这是为什么?我已经搜索过了,但是当您收到类名错误时,这很难。
我现在有这个代码
players[idPlayer] = new PongPlayerThread(serverSocket.accept(), idPlayer, rtnInfo());
players[idPlayer].start();
但是当客户端连接时,我收到此错误 Pong 400.0:301.0:60.0:300.0:740.0:300.0 服务器已启动服务器已设置,并将尝试在 Pong.PongServer.main 的线程“main”java.lang.NullPointerException 中创建套接字异常(PongServer.java:82)
它指向的行是 player[idPlayer] = new PongPlayerThread(serverSocket.accept(), idPlayer, rtnInfo()); ???