0

tcp outputstream(json)で問題が発生しています。サーバーが私のストリームを2つに分割して受信することがあります。しかし、それは1つに含まれている必要があります。

これが、ストリームを送信するための私のコードです。

- (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\"}"

これは場合によっては発生しますが、別の場合には、受信データが1つになります。

4

1 に答える 1

0

これを修正する方法は、ストリームメッセージの最後にシンボルを送信することです。「/r/ n」のように、サーバーはメッセージを見るとメッセージを閉じます。したがって、一度に1つのメッセージを処理するだけです。

于 2012-07-24T15:23:43.223 に答える