Passer des données de C à Java

Quel est le meilleur moyen de transmettre des données entre un serveur C et une applet Java? Actuellement, cela se fait en utilisant un tampon et en y copiant des octets en utilisant memcpy, mais si l’object change, je dois rechercher chaque instance d’envoi et le modifier.

Existe-t-il un meilleur moyen de transmettre un object à java? Comment le ferais-tu?

Modifier pour clarification: Il ne s’applique que du serveur C à l’applet Java. Il n’existe pas de servlet java. La seule chose que l’applet passe au serveur C est un nombre hexadécimal indiquant qu’une action doit être entreprise.

Vous voudrez peut-être jeter un coup d’œil aux protocoles tampons

Ils vous permettent de définir des données structurées, puis de générer le code permettant de lire et d’écrire des messages dans l’une des langues sockets en charge. Le seul problème est que, selon moi, ils ne prennent en charge que le C ++ pour le moment, même si je sais que la mise en œuvre directe du C suscitait un intérêt.

J’aurais ouvert une connexion de socket entre les deux applications. Vous pouvez sérialiser l’object en un tableau d’octets et laisser le servlet Java le désérialiser en un object Java avec la même valeur. De cette façon, si la définition de la classe change, il vous suffit de changer le code à deux endroits.

Je sérialiserais les objects en XML ou en google protobuf du côté C et les désérialiserais du côté de l’applet à l’aide d’un seul désérialiseur. C’est-à-dire qu’il n’y a pas plus d’une classe qui effectue la désérialisation. Indiquez à l’utilisateur la version de la sérialisation et que l’object qui effectue la dé-sérialisation lève une exception si la version qu’il tente de lire n’est pas compatible avec les versions antérieures. Ce serait une mauvaise pratique d’avoir la sérialisation et la désérialisation partout dans le code.