代码之家  ›  专栏  ›  技术社区  ›  Daniel Murali

发送带有\0的NSString

  •  0
  • Daniel Murali  · 技术社区  · 15 年前

    我试图将以\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 .

    有人能告诉我应该怎么做吗??

    2 回复  |  直到 15 年前
        1
  •  4
  •   sha    15 年前

    当然,它发送它时没有\0。 strlen 将返回字符串的长度,不计算空终止符。把它改成

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

        2
  •  -2
  •   SPatil    15 年前

    不能使用任何其他字符…因为“\0”字符始终被视为终止字符!