Ich habe ein TCP Thread erstellt der eigentlich alle eingehenden Verbindungen bearbeitet。在对象流中使用ObjectStream进行编辑和处理。Diegelesenen Objekte werden dann von einem ObjectHandler verwaltet。Solang ich dort nur String versen ist auch alles gut。我本来就很爱我,我很爱我,我很爱我。 Woran kann das liegen?
@Override
public void run() {
//Cryptography crypt = new Cryptography();
System.out.println("ClientHandler Aktiv");
try {
ObjectOutputStream out = new ObjectOutputStream(clientSocket.getOutputStream());
ObjectInputStream in = new ObjectInputStream(clientSocket.getInputStream());
boolean run = true;
while (run) { //While-Schleife wird dann abgebroch wenn eine Excaption auslöst
try{
String str = ObjectHandler.newObject(in.readObject());
System.out.println("IN OK ");
out.writeObject(str);
//Sttring senden
out.flush();
System.out.println("OUT OK" + str);
}
catch(Exception ex)
{
Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
System.out.println(ex.toString());
run = false;
}
}
out.close();
in.close();
clientSocket.close();
} catch (IOException ex) {
Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
System.out.println(ex.toString());
}
}
public class ObjectHandler{
/**
* @param obj
* @return 0 for Error, 1 for ok, 2 for ok with additionals
*
*/
public static String newObject(Object obj){
eigeneKlasse pat;
try{
String cmd = (String) obj;
return CommandHandler.workCommand(cmd);
}catch(ClassCastException ex){
pat = (eigeneKlasse) obj;
return tueEtwas(pat);
}
catch(Exception e){
System.out.println(e.toString());
return 0;
}
}
此问题已解决,因为服务器端程序包名称与客户端程序包名称不同。
因此,找不到该包。