2009-02-27 6 views
1

Je dois créer un serveur (java) - client (C++), le serveur et le client devront travailler avec des objets (types de données) qui sont les mêmes pour le client et pour le serveur, par exemple, un objet voiture sera créé du côté client, puis envoyé au serveur où des calculs supplémentaires seront effectués sur l'objet voiture. Ce que je voudrais faire est de créer une implémentation universelle de l'objet voiture et d'utiliser cette implémentation dans le serveur et le client. J'ai d'abord pensé à créer une DLL (en C++) avec tous les types de données qui sont identiques pour le client et le serveur, mais cette solution a un inconvénient. Parce que cette solution ne fonctionne que sous Windows et je dois supporter Win, Mac, Linux. Alors, existe-t-il une solution multiplateforme pour mon problème?Partager des types de données spécifiques à l'application avec le serveur et le client

Je rends grâce à toutes vos réponses.

Répondre

0

Pourvu que vous vous en tenez aux bibliothèques standard (multi-plateformes), vous ne devriez pas avoir de difficulté à recompiler votre bibliothèque (DLL) en tant que bibliothèques partagées (.so) sur OS X et Linux. Bien sûr, les charger en Java est une question différente (pour laquelle je n'ai aucune expertise). Cependant, plus important encore, dans le cas d'une application de serveur client, vous souhaitez probablement rechercher dans vos objets serialization effectifs afin qu'ils puissent être transmis sur le réseau et reconstruits de manière fiable par le récepteur.

+0

les charger en Java est simple (System.loadLibrary), mais ils devraient avoir des wrappers JNI pour eux (c'est la conception probable pour cela). – TofuBeer

3

Google dispose d'une bibliothèque Open Source appelée Protocol Buffers pour transférer des objets de données entre des clients et des serveurs comme dans votre situation. Il supporte C++, Java et Python.

0

Cela ressemble à un bon travail pour XML. C'est là que je commencerais.

Questions connexes