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 ??

È stato utile?

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!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top