Invia un NSString con \ 0
-
27-09-2019 - |
Domanda
Sto cercando di inviare una stringa terminata con \ 0 per un socket TCP, ma sembra che il \ 0 non mai raggiungere la sua destinazione.
Utilizzando questo codice:
NSString* s=@"<b/> \0_";
uint8_t *buf = (uint8_t *)[s UTF8String];
int resCode = [outputStream write:buf maxLength:strlen((char *)buf)];
mi sembra solo per inviare @"<b/> "
. Probabilmente il \0
è visto come la fine della uint8_t
.
Qualcuno può dirmi come dovrebbe essere fatto ??
Soluzione
Certo che lo invia senza \ 0. strlen
si tornerà lunghezza della stringa, senza contare nulli-Terminator. Cambiare a qualcosa come
[outputStream write:buf maxLength:(strlen((char *)buf) + 1)]
Altri suggerimenti
Perché si desidera inviare '] 0] carattere nella stringa di .....
Non puoi utilizzare qualsiasi altro carattere ... perche '\ 0' carattere viene sempre trattato come terminazione personaggio!
E se si vuole veramente di inviare in questo modo quindi inviare un carattere diverso e mapparlo '\ 0' quando voi receiv esso!