cocoaasyncsocket を使用して、データ Google プロトコル バッファ ( http://code.google.com/p/metasyntactic/wiki/ProtocolBuffersを使用) を Java サーバーに送信しています。これはすべて問題ありませんが、メッセージ (protoToSend) > 128 バイトの場合、Java サーバーがメッセージの長さを正しく読み取ることができないため、問題が発生しています。Objective C から間違った長さを送信しているためだと思います。
現在、次のようにデータを送信しています。
AsyncSocket *socket;
- (void)sendProtoToServer:(RequestMessage *)protoToSend {
NSData *d = [protoToSend data];
int s = [protoToSend serializedSize];
NSData *size = [NSData dataWithBytes:&s length:1];
[socket writeData:size withTimeout:TIME_OUT tag:100];
[socket writeData:d withTimeout:TIME_OUT tag:101];
}
何か案は?
前もって感謝します