【发布时间】:2013-01-28 09:13:42
【问题描述】:
我正在尝试创建一个可以存储在数组中的线程类,这将使我更容易处理从客户端到服务器的用户输入。
这是我的 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();
但是当客户端连接我得到这个错误 乒乓 400.0:301.0:60.0:300.0:740.0:300.0 服务器启动 服务器已设置并将尝试创建一个套接字 线程“主”java.lang.NullPointerException 中的异常 在 Pong.PongServer.main(PongServer.java:82)
它指向的线是 玩家[idPlayer] = new PongPlayerThread(serverSocket.accept(), idPlayer, rtnInfo()); ???
【问题讨论】:
标签: java networking tcp