服务器不接收iOS发送的数据

时间:2016-05-07 16:24:09

标签: ios objective-c sockets nsstring nsdata

我将一个字符串发送到我的服务器(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控制台中收到握手)我测试其他代码并且工作得非常好(接收数据),但是这次我是靠自己尝试的。我相信我没有将消息转换为适当的格式,这就是为什么消息没有收到,我是对的吗?如果是这样,我如何将此消息转换为适当的格式?

1 个答案:

答案 0 :(得分:1)

在调用write:...方法时,您确定输出流是否有空间用于写入多个字节?您只应在write:...委托方法中的输出流上调用stream:handleEvent:,并且仅在事件代码为NSStreamEventHasSpaceAvailable时才会调用。{/ p>

必须检查结果,看看实际写了多少字节。如果字节数少于您发送的字节数,则只要再次调用stream:handleEvent:委托方法,就必须将剩余数据排入队列以便稍后重新发送。

有关详细信息,请参阅: https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/Streams/Articles/WritingOutputStreams.html