我试图发送带有\ 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将返回长度的字符串,不包括空终止。它更改为类似

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

其他提示

你为什么要发“] 0]字符在字符串中.....

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

如果你真的想这样发送然后发送一个不同的角色和地图为“\ 0”,当你接收地嘛!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top