Frage

Ich versuche, eine Zeichenfolge mit \ 0 zu einem TCP-Socket beendet zu senden, aber es scheint, die \ 0 ist nie ihr Ziel erreichen.

Mit diesem Code:

NSString* s=@"<b/> \0_";

uint8_t *buf = (uint8_t *)[s UTF8String];

int resCode = [outputStream write:buf maxLength:strlen((char *)buf)];

Ich scheine nur @"<b/> " zu senden. Wahrscheinlich wird die \0 als das Ende des uint8_t gesehen.

Kann mir jemand sagen, wie es getan werden sollte ??

War es hilfreich?

Lösung

Natürlich ist es sendet sie ohne \ 0. strlen kehren Sie Länge der Zeichenfolge, nicht null-Terminatoren zu zählen. Ändern Sie es so etwas wie

[outputStream write:buf maxLength:(strlen((char *)buf) + 1)]

Andere Tipps

Warum wollen Sie senden möchten ‚] 0] Zeichen in Ihrem String .....

Können Sie andere Zeichen nicht verwenden ... weil ‚\ 0‘ immer als Abschlusszeichen behandelt wird!

Und wenn Sie wirklich wollen, dass es so sendet dann einen anderen Charakter senden und wo es zu ‚\ 0‘, wenn Sie es receiv!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top