2009-08-25 11 views
1

Ich benutze vb.net und ich würde einige Strukturen an einen C++ TCP-Server senden.Senden von Strukturen über Sockets

Das Problem ist, dass die Strukturen, die ich sende, möglicherweise andere Strukturen enthalten.

Struct { Länge; Byte wirklich; customStruct customStuff; } ErsteStruktur;

Struct { Länge; char [] Name; } CustomStruct;

Sagen wir, ich möchte FirstStruct über den C++ Server senden. Wie gehe ich vor? Einige Codebeispiele werden großartig sein.

danke.

Antwort

4

Strukturen können nicht über Sockets gesendet werden, nur Bytes. Sie müssen entscheiden, wie Sie die Strukturen in einen Byte-Stream im Absender und zurück in äquivalente Datenstrukturen im Empfänger konvertieren.

Angenommen beide Seiten führen Windows * aus, können Sie die Details mit .NET binary serialization behandeln. Ich bezweifle, dass das Konvertieren von einer VB.NET-Struktur direkt in eine C-Struktur unterstützt, aber es sollte in der Lage sein, auf der Empfängerseite eine vernünftige Annäherung zu konstruieren.

* Mono, AFAIK, unterstützt keine .NET-Erweiterungen für C++.

+0

yup serialisiert. Ich verstehe, dass ich die Struktur vor dem Senden in Byte-Array konvertieren muss. Das Problem, das ich habe, ist, Beispiele zu finden, es zu tun und auch Beispiele, wie man eine Struktur, die Mitglieder eines anderen Strukturtyps enthält, in Bytearray umwandelt. –

0

Ich würde meinen vb structs in so etwas wie XML (oder JSON) und analysiere sie auf der Server-Seite ...

+0

Das ist ein existierender Server, mit dem wir uns verbinden wollen, daher ist es unmöglich, die Art und Weise zu ändern, in der die Daten funktionieren :( –

Verwandte Themen