2
我正在使用cocoaasyncsocket将数据Google Protocol Buffers(使用http://code.google.com/p/metasyntactic/wiki/ProtocolBuffers)发送到Java服务器。这一切都很好,但对于消息(protoToSend)> 128bytes我遇到了问题,因为Java服务器无法正确读取消息长度,我认为是因为我从目标C发送了错误的长度。发送数据如下:cocoaasyncsocket发送数据> 128bytes(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];
}
任何想法?
预先感谢
嗨,感谢您的快速响应。 是的,我明白你的意思,我想我需要使用CodedOutputStream将我的大小(int)转换为varint。 – robert