配列に格納できるスレッドであるクラスを作成しようとしています。これにより、クライアントからサーバーへのユーザー入力を簡単に処理できるようになります。
ここに私の 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 Server started Server was setup and will try to create a socket Exception in thread "main" java.lang.NullPointerException at Pong.PongServer.main (PongServer.java:82)
それが指している行は、players[idPlayer] = new PongPlayerThread(serverSocket.accept(), idPlayer, rtnInfo()); です。???