2011-10-13 4 views
1

Mon cours de communication peer-to-peer des universités utilise un programme client/serveur interne pour la démonstration et (je pense) l'étendre fait partie de l'évaluation. Le programme que nous utilisons est écrit en Java et utilise la sérialisation pour la communication réseau. Pour obtenir une meilleure adhérence, je veux essayer de réimplémenter le protocole utilisé dans l'objectif c, mais googler autour je ne peux trouver aucune information sur l'utilisation de données sérialisées entre les langues. Je voudrais garder cela aussi simple que possible, idéalement être capable de déposer mon serveur/client de remplacement sur un réseau et de le faire se comporter.Communication sérialisée entre les langues

Modifier N'a pas réellement posé une question là.

Est-il possible de communiquer entre les deux formats sérialisés, Comment puis-je faire ce travail sans ingénierie inverse le format utilisé par Java.

+3

Cela semble délicieux. Avez-vous eu une question aussi? – Widor

+0

Cela va être un exercice de douleur. – Perception

+0

Je pensais autant; quelques recherches rapides n'ont rien apporté. – botptr

Répondre

0

Le protocole de sérialisation Java (s'il s'agit de la sérialisation Java par défaut intégrée) est documenté. Vous n'avez donc pas besoin de le désosser - vérifiez this article et this link. Cependant, si vous le pouvez, utilisez JSON, XML ou XML-RPC; ce sera beaucoup plus simple que de créer un sérialiseur/désérialiseur Java dans une autre langue.

1

Je recommande d'éviter d'écrire le support (de) sérialisation de la sérialisation natif de java dans une autre langue.

Si vous pouvez modifier le serveur et les clients Java existants, utilisez un format de sérialisation plus agnostique.

En supposant que vous n'êtes pas autorisé à faire ce genre de changement, je définirais le nouveau protocole et implémenterais un pont en Java. Le pont (processus) établirait une connexion pour le compte de chaque client qui s'y connecte et traduirait les messages entre le format Java sérialisé et le langage agnostique. Cela fournira une bonne stratégie de migration.