0でnsstringを送信します
-
27-09-2019 - |
質問
0で終了した文字列をTCPソケットに送信しようとしていますが、 0は目的地に到達しないようです。
このコードの使用:
NSString* s=@"<b/> \0_";
uint8_t *buf = (uint8_t *)[s UTF8String];
int resCode = [outputStream write:buf maxLength:strlen((char *)buf)];
私は送るだけのようです @"<b/> "
. 。おそらく \0
の終わりと見なされています uint8_t
.
誰かがそれをどうやってやるべきか教えてもらえますか?
解決
もちろん、それは 0なしでそれを送ります。 strlen
null末端をカウントするのではなく、文字列の長さを返します。そのようなものに変更してください
[outputStream write:buf maxLength:(strlen((char *)buf) + 1)]
他のヒント
なぜあなたはあなたの文字列のキャラクターを送りたいのですか?
他のキャラクターを使用できません...「 0」文字は常に終了キャラクターとして扱われるためです!
そして、本当にそのように送りたい場合は、別のキャラクターを送信して、それを受け取ったときに「 0」にマップしてください!
所属していません StackOverflow