我正在使用Java编写客户端 - 服务器游戏,我需要将一个类发送到服务器,以便将该类重新发送到另一个客户端。
问题是该类有其他类作为属性,因此当服务器执行的唯一任务是重新发送收到的对象时,在服务器上拥有所有类并不容易和干净。
我尝试过写作,阅读和投射(对象):
Object partida = (Object) ois.readObject();
java.lang.ClassNotFoundException 仍然出现。
有没有办法在没有在服务器上定义类的情况下重新发送对象?
发送数据的客户端
@Override
public void run() {
while(!isInterrupted()){
try {
String missatge = (String) ois.readObject(); //Has a request
if(missatge.equals("PARTIDA")){
oos.writeObject(gameWindow.getPartida()); //Sends object of the class Partida
}
} catch (IOException e) {
e.printStackTrace();
break;
} catch (ClassNotFoundException e) {
e.printStackTrace();
break;
}
}
}
必须重新发送数据的服务器
public Object getPartida(){
Object partida = null;
try {
oos.writeObject("PARTIDA"); // send the request
partida = ois.readObject(); //read the Object --> here is where occurs the exception
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e){
e.printStackTrace();
}
return partida; //this method returns the "Partida" which has to be resend to another client
}