Thomas123: Ingeter/float aus Byte Array

Beitrag lesen

Du machst aus dem String ein Array mit Byte-Integerwerten.

Und dann machst du in deiner Funktion toSint() aus dem Arraywert wieder einen String, auf den du dann unpack() anwendest. Klingt irgendwie nach einem Irrweg, oder? Zumal ein Array von Integerwerten deutlich mehr Speicher verbraucht, als ein String. Wenn die gelesene Datenmenge also hinreichend groß ist, kriegst du damit noch ganz andere Probleme.

Nun, socket_read() gibt unter php warum auch immer einen String zurück. Die rohe recv() Socket Betriebssystemfunktion schreibt meine Daten in einen "char* buf", was in C üblicherweise ein char-Array ist.

Es kann später auch sein, dass ich aus dem Datenstrom auf ein einzelnes Byte zugreifen möchte (quasi ein int8_t). Das müsste dann auch mittels Ord() in den entsprechenden Wert gewandelt werden.

Ich denke aber nochmal drüber nach.

Andererseits: unpack zerlegt dir auf Wunsch auch mehr als ein Byte eines Strings in Integerwerte. Effektiv könntest du, sofern sich die eingelesenen Daten dazu eignen, alle Bytes direkt in Integer wandeln.

Da muss ich mal schauen wie das geht.

Gruß
Thomas