private class Inport extends Thread {
private ObjectInputStream in;
private ObjectOutputStream out;
public void run() {
try {
in = new ObjectInputStream(socket.getInputStream());
}
catch(IOException e) {
System.out.println("Could not get input stream from "+toString());
return;
}
try {
out = new ObjectOutputStream(socket.getOutputStream());
}
catch(IOException e) {
System.out.println("Could not get output stream from "+toString());
return;
}
while(true) {
try {
Thread.sleep(USER_THROTTLE);
}
catch(InterruptedException e) {
System.out.println(e.toString()+" has input interrupted.");
}
}
}
}
public User(Socket newSocket) {
// Set properties
socket = newSocket;
connected = true;
// Get input / output
inport = new Inport();
inport.start();
}
public Object getObject() {
try {
return inport.in.readObject();
}
catch (IOException ioe) {
return null;
}
catch(ClassNotFoundException cnfe) {
return null;
}
}
//метод getObject повертає NullPointerException
//мене цікавить чи взагалі можна так брати змінну з треда, чи треба якось інакше, збирати дані в вектор а потім синхронізувати і читати?