0

我正在尝试将一个以 \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

谁能告诉我应该怎么做??

4

2 回答 2

4

当然它发送它没有\ 0。strlen将返回字符串的长度,不包括空终止符。将其更改为类似

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

于 2010-08-11T14:38:04.930 回答
-2

为什么要在字符串中发送 ']0] 字符.....

你不能使用任何其他字符...因为 '\0' 字符总是被视为终止字符!

如果你真的想以这种方式发送它,那么发送一个不同的字符并在你收到它时将它映射到 '\0' !

于 2010-08-11T14:25:36.160 回答