基于protobuf的client