Forum Clubic

Programme JAVA - Erreur transmission réseau en JAVA

Je travaille actuellement sur un jeu en réseau (sorte de snake vraiment basique) où il y a un serveur et des clients.
Le serveur traite les données reçues par les clients (en fait juste des directions transmises en appuyant sur les touches directionnelles) et il leur renvoie en multicast un objet leur permettant d’afficher localement l’état du jeu à tout instant.
J’ai un problème dans ce renvoie de la part du serveur: l’objet renvoyé contient trois attributs:
un tableau de booléens
un tableau de boutSerpent (une classe représentant une partie de serpent)
un tableau de Territoire (une classe qui hérite de Area)

l’objet est parfaitement transmis aux clients et je peux très bien lire les deux premiers tableaux.
En revanche le dernier tableau (de Territoire donc) est renvoyé avec null à l’intérieur sans que je ne sache pourquoi.
Je précise que j’ai déclaré la classe Territoire serializable.

Si quelqu’un pouvait m’éclairer sur ce problème je lui en serais très reconnaissant.

Merci d’avance

Et la classe Territoire est définie aussi chez le client? Ce ne serait pas un probleme d’erreur lors du chargement de la classe? (classLoader)

Et le serialUID, il vaut quoi entre le serveur & client?

Sinon, Area est-elle sérialisable?

Merci de vos rapides réponses

La classe territoire est bien définie chez le client et je ne reçois aucune exception de type classe manquante.

Sinon je ne sais pas si Area, qui est une classe de base de java est serializable mais est-ce vraiment nécessaire si la classe qui en hérite l’est ?
Pour ce qui du serialVersionUID je n’ai pas trop compris à quoi cela servait et j’en ai mis un à une valeur arbitraire à mon territoire!

http://java.sun.com/j2se/1.5.0/docs/api/ja…/geom/Area.html

Elle n’est pas sérialisable. Et si j’en crois l’API :

http://java.sun.com/j2se/1.5.0/docs/api/ja…rializable.html

En clair : la classe Area doit avoir des propriétés bien à elles, qu’il n’est pas possible de sérialiser, ce qui rend la sérialisation impossible sans mettre les mains dans le camboui.

Définis les méthodes

 private void writeObject(java.io.ObjectOutputStream out)
     throws IOException
 private void readObject(java.io.ObjectInputStream in)
     throws IOException, ClassNotFoundException;