Senden floating-point-Zahl von server zu client
Ich bin mit TCP/IP - socket-Programmierung. Ich habe eine floating-point-Wert in einer Variablen gespeichert ret_val in meinem server-code, die ich senden möchten, um die Kunden wartet, Sie zu empfangen.
Wie kann ich es tun?
- Es könnte hilfreich sein, wenn Sie die Sprache angeben, und / oder Laufzeit, wird von sender und Empfänger.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie wissen, dass sowohl client als auch server die gleichen platform etc., Sie können einfach mit
sizeof(float)
zu bestimmen, die Puffergröße und zu kopieren, dass viele bytes von der Adresse der float.Sobald Ihre client - /server-Plattformen/verschiedenen Sprachen etc. Sie müssen beginnen, sich sorgen darüber, wie Mobil Kodieren der Schwimmer. Aber für ein einfacher Ansatz, der die oben genannten Probleme arbeiten.
Dieser code wird funktionieren, wenn beide, server und client verwenden die gleiche Plattform. Wenn die Plattformen unterschiedlich sind, haben Sie zu verhandeln Nachricht Größen und endian Typ explizit.
Verwenden Sie eine textuelle Darstellung ?
Können Sie Lesen, dass string und parse es wieder mit sscanf. (Vielleicht sogar machen es Zeile beendet - "%f\n" - damit Sie wissen, Wann die Zahl endet.)
Dem direkten Ansatz ist einfach
In beiden Fällen sollten Sie überprüfen Sie den Rückgabewert von write und nehmen Sie die richtige Aktion, wenn ein Fehler Auftritt, oder write() schrieb weniger bytes, als Sie sagte es.