我认为你
Server
类,您试图发送回错误的对象。
不应该是:
oos.writeObject(objectOut);
?
现在你正在发回
对象输入
这是一个
ObjectToServer
实例(或至少如此),而您正试图将其转换为
ObjectToClient
客户端,因此出现ClassCastException。
固定服务器类:
public class Server {
static PizzaManager manager = new PizzaManager();
private static void handleConnection(Socket client) throws IOException {
ObjectInputStream ois = new ObjectInputStream(client.getInputStream());
ObjectOutputStream oos = new ObjectOutputStream(client.getOutputStream());
ObjectToServer objectIn;
try {
objectIn = (ObjectToServer) ois.readObject();
String buttonPressed = objectIn.getButtonPressed();
if(buttonPressed.equals("NamenSuche")) {
String searchedPizzaName = objectIn.getParameterList().get(0);
manager.namenSuche(searchedPizzaName);
ObjectToClient objectOut = new ObjectToClient();
objectOut.setResults(manager.getResults());
oos.writeObject(objectOut); // instead of objectIn
}
// some more cases..
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
ois.close();
oos.close();
}
public static void main(String[] args) throws IOException {
ServerSocket server = new ServerSocket(3141);
while(true) {
Socket client = null;
try {
client = server.accept();
handleConnection(client);
}
catch(IOException e) {
e.printStackTrace();
}
finally {
if(client!=null) {
try {
client.close();
}
catch(IOException e) {
}
}
}
}
}
}