2009-08-25 2 views
1

J'utilise vb.net et je voudrais envoyer des structures à un serveur C++ tcp.envoie des structs sur les sockets

Le problème est que les structures que j'envoie peuvent contenir d'autres structures.

Struct { longueur d'uint; octet vraiment; customStruct customStuff; } FirstStruct;

Struct { longueur d'uint; char [] nom; } CustomStruct;

Disons que je veux envoyer FirstStruct sur le serveur C++. Comment vais-je le faire? Certains exemples de code seront géniaux.

merci.

Répondre

4

Les structs ne peuvent pas être envoyés via des sockets, seulement des octets. Vous devez décider comment convertir les structures en un flux d'octets dans l'expéditeur et revenir à des structures de données équivalentes dans le récepteur. Si les deux côtés exécutent Windows *, vous pouvez utiliser .NET binary serialization pour gérer les détails. Je doute que cela supporte la conversion d'une structure VB.NET directement en une structure C, mais elle devrait être capable de construire une approximation raisonnable à l'extrémité réceptrice.

* Mono, AFAIK, ne prend pas en charge les extensions .NET de C++.

+0

yup. Je comprends que j'ai besoin de convertir la structure en tableau byte avant d'envoyer. Le problème que j'ai est de trouver des exemples de le faire et aussi des exemples sur la façon de convertir une structure qui contient des membres qui est d'un autre type de structure en tableau d'octets. –

0

Je sérialisation mes vb struct en quelque chose comme XML (ou JSON) et les analyser sur le côté serveur ...

+0

C'est un serveur existant, nous essayons de se connecter afin de changer la façon dont il fonctionne sur les données est impossible :( –