Ich muss heterogene Daten von einem Matlab-Client an einen Server senden und empfangen. Die Daten umfassen 32-Bit-Ganzzahlen und 64-Bit-IEEE-Gleitkommazahlen. Denken Sie daran, dass TCP/IP nur Zeichen versteht, also muss ich diese Daten zusammen in ein zusammenhängendes Array packen, um es auszählen zu können. Nach Erhalt der Antwort muss ich die Byte-Daten aus dem eingehenden Zeichen-Array extrahieren und in Matlab-Typen umwandeln. Hat jemand eine Idee, wie man das macht?Heterogene Daten über TCP/IP
0
A
Antwort
0
der Oberbegriff für heterogene Daten in einen Strom von Bytes oder Zeichen Drehen ist Serialisieren (und umgekehrt, Deserialisieren).
Zwei weit verbreitete Formate für Daten in Textzeichen Serialisierung sind XML und JSON.
Wenn Sie auf der Mathworks-Website nach einem dieser Begriffe suchen oder diese Seite zusammen mit [matlab]
nach diesen Begriffen durchsuchen, finden Sie zahlreiche Bibliotheken und Codebeispiele.
Oder seit R2016b verfügt MATLAB über integrierte Funktionen zum Serialisieren/Deserialisieren von JSON: jsonencode
und jsondecode
.
Verwandte Themen
- 1. Senden von Daten an Zabbix über TCPIP-Sockets
- 2. Debugging Reactive Native über adb tcpip
- 3. tcpip 3-Wege-Handshake
- 4. Heterogene Daten vom Arbeitsbereich in Simulink
- 5. PHP-Bibliothek für LIS tcpip
- 6. Heterogene Karte
- 7. Wie sicher ist adb tcpip (ADB über Wi-Fi)
- 8. Veränderbare indizierte heterogene Datenstruktur?
- 9. Heterogene Liste Slicing
- 10. Native heterogene Abschnittsliste reagieren
- 11. Heterogene Laufzeiten beim Abbilden über parallele Sequenz in Scala
- 12. in Hazelcast Mehrknoten-Docker Umgebungen mit TCPIP
- 13. Wie lade ich heterogene Daten (np.genfromtxt) als 2D-Array?
- 14. Datenbindung an eine heterogene Liste
- 15. AutoFixture: Property und heterogene Parameter
- 16. Können wir Listenansicht für heterogene Sammlungen verwenden
- 17. Listen sind für homogene Daten und Tupel sind für heterogene Daten ... warum?
- 18. heterogene Container-Suche in C++ 98
- 19. Haskell heterogene Liste der speicherbaren Objekte
- 20. RecyclerView zeigt heterogene Layouts nicht korrekt an
- 21. Wie erstellt man eine heterogene boost :: map?
- 22. Heterogene Liste und dynamische Array-Zuweisung
- 23. Verschachtelte verschachtelte heterogene JSON-Arrays mit Aeson
- 24. Heterogene Container mit nur statischen Polymorphismus
- 25. Heterogene Argumente in einer Scala-Funktion
- 26. Heterogene und homogene Sammlung von Objekten
- 27. C++ Rückpropagation auf einem Graphen; heterogene Vektoren?
- 28. eine heterogene Karte mit Message in C++
- 29. Wie Update Orakel heterogene Dienste Metadaten?
- 30. Erstellen Sie eine Schnittstelle für heterogene Quellen
"... TCP/IP versteht nur Zeichen ..." - das stimmt nicht. TCP/IP (eigentlich reden wir nur über TCP hier), senden alle gewünschten Bits ... die Codierung (manchmal "Zeichen") spielt keine Rolle. Wenn Sie die Daten in ein Byte-Array packen und in einen TCP-Socket schreiben können, ist alles in Ordnung. Klingt so, als ob Sie ein Protokoll benötigen, um Dinge zu packen und zu entpacken (serialisiert/deserialisiert). Es gibt viele Formate mit Bibliotheken zum Serialisieren von Daten. Um nur ein paar zu nennen: gRPC, MessagePack, BSON, Protobuf, Thrift, XML, JSON ... die Liste geht weiter. – marklap
Ich muss dem widersprechen. Vom TCP-RFC: "Der TCP ist in der Lage, einen kontinuierlichen Strom von Oktetten in jede Richtung zwischen seinen Benutzern zu übertragen, indem er einige Oktette in Segmente für die Übertragung durch das Internetsystem packt." TCP nimmt also an, dass die Daten in einem Array von Oktetts oder Bytes oder Zeichen für die x86-Architektur kommen. In einer Sprache wie C oder Forth ist das Zusammensetzen (oder Serialisieren oder Multiplexen) sogar eines 64-Bit (oder 80-Bit, in Forth) IEEE-Real in eine Anordnung von Zeichen trivial. Aber in Matlab ist es nicht. Ich habe eine präzise, zuverlässige Methode entwickelt, die zu meiner Anwendung passt. – AeroGuy
Octets und Bytes sind äquivalent ja. Aber Charaktere sind nicht. Zeichen sind Bytes, die in einer bestimmten Reihenfolge und einem bestimmten Verfahren angeordnet sind - d. H. Codiert sind. TCP kümmert sich nicht um die Codierung. Es liefert nur Bytes - codiert oder nicht. – marklap