私はcocoaasyncsocketを使用して、Googleプロトコルバッファ(http://code.google.com/p/metasyntactic/wiki/ProtocolBuffersを使用)をJavaサーバーに送信しています。これはすべて問題ありませんが、メッセージ(protoToSend)> 128bytesの場合Javaサーバがメッセージの長さを正しく読み取れないため、問題に遭遇しています。Objective Cから間違った長さを送信していると思います。データを送信するcocoaasyncsocket> 128バイト(Googleプロトコルバッファ)
私は現在次のようにデータを送信してください:
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];
}
どのようなアイデアですか?予め
こんにちは、高速応答ありがとう。 ええ、私はあなたが意味するものを参照してください、私はvarintに私のサイズ(int)を変換するためにCodedOutputStreamを使用する必要があると思う。 – robert