Desidero trasmettere un oggetto serializzato su un canale socket. Voglio rendere la stringa "Ciao amico" come oggetto serializzato e quindi scrivere questo oggetto nel canale socket mentre nell'altra estremità voglio leggere lo stesso oggetto e recuperare i dati.Come inviare e ricevere oggetto serializzato nel canale socket
Tutte queste cose che voglio fare utilizzando Java SocketChannel
. Come fare questo? Ho provato come sotto, ma non ho ricevuto alcun dato nel lato del destinatario.
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;
}
La domanda di Java manca! – tuergeist
Il tuo SocketChannel è già aperto e connesso? – tuergeist
sì il canale socket è aperto e connesso –