2010-12-06 17 views
-1

Ceci est le code qui i utilisé sur socket clientjava.lang.ClassCastException dans ObjectOutputStream ReadObject

Socket connected = Server.accept(); 
ObjectOutputStream oos = new ObjectOutputStream(connected.getOutputStream()); 

oos.writeObject(dPFPSample.serialize()); 

ce que le code i utilisé sur socket serveur

Socket clientSocket = new Socket("localhost", 5002); 
ObjectInputStream ois = new ObjectInputStream(clientSocket.getInputStream()); 

DPFPSample dpfpSample = (DPFPSample) ois.readObject(); 

i eu une erreur java.lang.ClassCastException exception on ois.readObject() line

+3

Que fait 'dPFPSample.serialize()'? – Progman

+0

Pouvons-nous avoir la pile complète s'il vous plaît? –

+2

Ne paraphrasez pas les traces de pile d'exception - montrez-nous la trace réelle. – skaffman

Répondre

6

Je suppose que votre DPFPSamle.serialize() renvoie quelque chose de différent puis DPFPSamle. Je dirais que vous n'avez pas besoin d'appeler une méthode de sérialisation. Le flux va le gérer. Il suffit donc d'appeler writeObject(dPFPSample)

Pour que cela fonctionne votre classe (celle que vous essayez d'envoyer - c'est-à-dire DPFPSample) doit implémenter l'interface java.io.Serializable.

+0

désolé pour cette question stupide comme son tableau de retour de l'octet DPFPSamle.serialize() mais si je supprime que j'ai eu une exception java.io.NotSerializableException – chetan

+0

@chetan - puis mettre en œuvre votre classe java.io.Serializable – Bozho

+0

Si je ne suis pas faux que vous parlez de mon client et serveur socket class.Oui j'ai l'outil Serializable – chetan