google::protobuf::io::ArrayInputStream ais(buffer,filldata.ByteSize());
At this point, filldata
is a newly-initialized message, so filldata.ByteSize()
is zero. So, you're telling protobufs to parse an empty array. Hence, no fields are set, and you get a required fields error. Messages have variable length, so you need to make sure the exact message size is passed along from the server.