2013-02-12 3 views
0

im пытается создать класс, который является потоком, который может быть сохранен в массиве, что облегчит мне обработку пользовательских входов от клиентов к серверу.не может преобразовать void в «classname»

вот мой 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(); 

Я получаю эту ошибку «не могут конвертировать из ничтожного 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 сервер начал сервера была установка и будет пытаться создать сокет исключение в потоке «основной» java.lang.NullPointerException на Pong.PongServer.main (PongServer.java:82)

линия это указывает на это игроков [IDP layer] = новый PongPlayerThread (serverSocket.accept(), idPlayer, rtnInfo()); ???

+0

старт возвращает аннулируется – smk

ответ

5
players[0] = new PongPlayerThread(serverSocket.accept(), 0, rtnInfo()); 
players[0].start(); 
+0

Спасибо так много: D – Canvas

+1

нормально, когда я в настоящее время запустить свой код я получаю эту Pong 400,0: 301,0: 60,0: 300,0: 740,0: 300,0 сервера начал сервер был установкой и будет пытаться создать сокет Исключение из потока «main» java.lang.NullPointerException \t на Pong.PongServer.main (PongServer.java:82) если вы хотите, чтобы код для сервера просто сказал – Canvas

2

Проблема заключается в том, что Thread.start() возвращает пустоту, и вы пытаетесь присвоить результат new PPT(...).start() к players[0].

new PPT(...).start() возвращает void, и поэтому компилятор жалуется, что он не может преобразовать эту пустоту в объект типа PongPlayerThread.

Смежные вопросы