Ich möchte ein serialisiertes Objekt über einen Socket-Kanal übertragen. Ich möchte "Hallo Freund" Zeichenfolge als serialisierte Objekt und dann dieses Objekt in Socket-Kanal schreiben, während am anderen Ende möchte ich das gleiche Objekt lesen und die Daten abrufen.Wie serialisiertes Objekt in Socket-Kanal senden und empfangen
All diese Dinge möchte ich mit Java SocketChannel
tun. Wie macht man das? Ich habe versucht, wie unten, aber keine Daten auf der Empfängerseite erhalten.
private static void writeObject(Object obj, SelectionKey selectionKey) {
ObjectOutputStream oos;
try {
SocketChannel channel = (SocketChannel) selectionKey.channel();
oos = new ObjectOutputStream(Channels.newOutputStream(channel));
oos.writeObject(obj);
} catch (IOException ex) {
ex.printStackTrace();
}
}
private static Object readObject(SelectionKey selectionKey) {
ObjectInputStream ois;
Object obj = new Object();
SocketChannel channel = (SocketChannel) selectionKey.channel();
try {
ois = new ObjectInputStream(Channels.newInputStream(channel));
obj = ois.readObject();
} catch (Exception ex) {
ex.printStackTrace();
}
return obj;
}
die Frage des Java fehlt! – tuergeist
Ist Ihr SocketChannel bereits geöffnet und verbunden? – tuergeist
ja Socket-Kanal ist offen und verbunden –