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