Server:Server/Client-Sockets und Object
Socket client_socket = server_back_end.server_socket.accept(); //1.
ClientInfo new_client = new ClientInfo(
new ObjectOutputStream(client_socket.getOutputStream()), //writer
new ObjectInputStream(client_socket.getInputStream()), //reader
"blah, about to be re-written"
);
new_client.user_name = (String) new_client.reader.readObject(); //3. "bob"
//new_client.user_name = new_client.reader.readLine(); //this doesnt work either
System.out.println("Client " + new_client.user_name + " has connected.");
Auftraggeber:
Socket client_socket = new Socket();
client_socket.connect(new InetSocketAddress(server_ip, server_port), 500);
client_front_end.display("<<Connection Successful.>>\n");
String user_name = txtfield.getText(); //"bob"
client = new ClientInfo(
new ObjectOutputStream(client_socket.getOutputStream()), //writer
new ObjectInputStream(client_socket.getInputStream()), //reader
user_name);
client.writer.writeChars(client.user_name); //2.
ich zuerst den Server-Code auszuführen. Wenn ich den Debugger auf der Serverseite durchlaufe, "// 1." wird ausgeführt und wartet darauf, dass ein Client eine Verbindung herstellt.
Dann ich den Client-Code ausführen. Was ich erwarte, ist "// 2". sollte "// 3." Wählen Sie im Servercode den Namen und drucken Sie, dass der Benutzer eine Verbindung hergestellt hat. Aber das ObjectOutputStream.writeChars(client.user_name)
löst das Lesen im Server nicht aus. Was mache ich falsch? Mein Ziel ist es, den Namen aus dem Client mit diesen ObjectOutput/ObjectInput-Streams erfolgreich zu drucken
Ich verstehe das Konzept, das Sie sagen, aber schreibe ich nicht eine Zeichenfolge und dann ein Objekt lesen, das zu einer Zeichenfolge gegossen wird? Oder beziehst du dich auf etwas anderes? –
den ursprünglichen Beitrag aktualisiert, um eine andere Sache widerzuspiegeln, die ich versuchte –
kann ich nur wiederholen. Wenn Sie mit 'readObject()' lesen wollen, müssen Sie mit 'writeObject()' schreiben. – EJP