TCP输出流错误



我遇到了tcp输出流(json)的问题。碰巧服务器接收到我的流被分成两部分。但它必须只有一个。

这是我发送流的代码:

- (void) sendMessage:(NSDictionary *)message {
    [outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
    NSDictionary *dic=[[NSDictionary alloc]initWithObjectsAndKeys:@"52731255-7b3d-5027-9937-ca311e61c14e",@"token",@"add",@"action",message,@"data",@"contact",@"element", nil];
    NSLog(@"send message: %@",dic);
    NSError *writeError = nil;
    [NSJSONSerialization writeJSONObject:dic toStream:outputStream options:0 error:&writeError];
}

但这就是服务器接收到的:

Incoming data:"{"
Incoming data:""action":"add","data":{"lastName":"Guilherme","firstName":"Fabio","entryId":3,"webLink":"www.test.com"},"element":"contact","token":"s3e4-7b3d-fasd-afds-fadsfdsa123"}"

这种情况在某些情况下会发生,但在另一些情况下,传入数据会成为一体。

我们发现,解决这个问题的方法是在流消息的末尾发送一个符号。就像"/r/n"一样,服务器在看到消息时会关闭它。所以它一次只处理一条消息。

相关内容

  • 没有找到相关文章

最新更新