Ios TCP输出流错误

Ios TCP输出流错误,ios,cocoa,tcp,stream,outputstream,Ios,Cocoa,Tcp,Stream,Outputstream,我在tcp输出流(json)方面遇到了问题。碰巧服务器接收到的流被分成两部分。但它必须是在一个 这是我发送流的代码: - (void) sendMessage:(NSDictionary *)message { [outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; NSDictionary *dic=[[NSDictionary alloc]initWit

我在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”,服务器在看到消息时关闭消息。所以它一次只处理一条消息。

这就是TCP的工作原理。服务器需要能够处理它。它是否可以这样工作?所以在服务器中,我们必须进行某种缓冲过程?请帮帮我,因为我已经做了一周了:S服务器被支持接收一个简单的json文件:SYes。您需要有一种检测有效JSON值结尾的方法。您可能还希望限制对象的最大大小以避免DOS。