ich diese Klasse in meinen beiden Client-und mein ServerObjekt durch Object Senden wird
public class user implements Serializable{
int pass;
String name;
public user(int pass, String name){
this.pass = pass;
this.name=name;
}//i also have a getPass and a getName
Hier ist, wie ich Setup die Streams
private void setupStreams() throws IOException{
output = new ObjectOutputStream(connection.getOutputStream());
output.flush();
input = new ObjectInputStream(connection.getInputStream());
showMessage("\n The streams are now set up! \n");
}
Nun, was ich tun möchte, ist ein senden haben blockiert Benutzerobjekt vom Client zum Server Hier ist, was ich tue, auf der Client-Seite:
button1l.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event){
if(isLogin(id)==true){
User user1 = new User(123,"test");
try {
output.writeObject(user1);
output.flush();
} catch (IOException ex) {
Logger.getLogger(ClientClass.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
);
und auf der Serverseite:
public void run() {
sendMessage("hello there\n");
do{
try{
System.out.println("before\n");//everytime loop it reaches here
User user1 = (User) input.readObject(); //but never here
System.out.println("read user\n");
System.out.println("x="+ user1.getPass()+ "y=" + user1.getName());
}catch(ClassNotFoundException classNotFoundException){
System.out.println(classNotFoundException);//i just added this println
} catch (IOException ex) {
Logger.getLogger(ClientThread.class.getName()).log(Level.SEVERE, null, ex);
}
}while(true);
}
Aber nichts passiert. Keine Fehler, nur ein leerer Bildschirm. Also was mache ich falsch oder ist es der falsche Weg dies zu tun? PS: Nach dem Hinzufügen der println (classNotFoundException); Der Druck, den ich jedes Mal bekomme ich versuche, ist zu senden: java.lang.ClassNotFoundException: client.User ..
'output.flush();' *** nach *** 'output.writeObject (user1);' –
warum würde das etwas ändern? – Syarx
@Syarx Die Daten können auf der Seite des Absenders gepuffert werden, der Aufruf von 'flush()' wird das System zwingen, den Puffer zu senden. – Titus