我使用以下代码将字符串发送到我的服务器(PHP):
NSString* str = @"teststring";
NSData* dataToSend = [str dataUsingEncoding:NSUTF8StringEncoding];
uint8_t *dataBytes = (uint8_t *)[dataToSend bytes];
uint64_t length = dataToSend.length;
[outputStream write:dataBytes maxLength:length];
这个问题是代码,是我没有收到字符串(服务器识别出用户输入并且我在 Xcode 控制台中收到握手)我测试了其他代码并且工作得很好(接收数据),但是在这次我自己尝试一下。我相信我没有将消息转换为适当的格式,这就是没有收到消息的原因,对吗?如果是这样,我如何将此消息转换为适当的格式?
最佳答案
当您调用 write:...
方法时,您确定输出流有足够的空间写入那么多字节吗?您应该仅在 stream:handleEvent:
委托(delegate)方法中对输出流调用 write:...
,并且仅当事件代码为 NSStreamEventHasSpaceAvailable
.
并且您必须检查结果以查看实际写入了多少字节。如果它比您发送的字节少,您必须将剩余的数据排入队列,以便稍后在您的 stream:handleEvent:
委托(delegate)方法再次被调用时重新发送。
关于ios - 服务器收不到iOS发送的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37090922/