import sys import argparse import grpc sys.path.insert(0, '../../../../../flatbuffers/python') import flatbuffers from models import HelloReply, HelloRequest, greeter_grpc_fb parser = argparse.ArgumentParser() parser.add_argument("port", help="server port to connect to", default=3000) parser.add_argument("name", help="name to be sent to server", default="flatbuffers") def say_hello(stub, hello_request): reply = stub.SayHello(hello_request) r = HelloReply.HelloReply.GetRootAs(reply) print(r.Message()) def say_many_hellos(stub, hello_request): greetings = stub.SayManyHellos(hello_request) for greeting in greetings: r = HelloReply.HelloReply.GetRootAs(greeting) print(r.Message()) def main(): args = parser.parse_args() with grpc.insecure_channel('localhost:' + args.port) as channel: builder = flatbuffers.Builder() ind = builder.CreateString(args.name) HelloRequest.HelloRequestStart(builder) HelloRequest.HelloRequestAddName(builder, ind) root = HelloRequest.HelloRequestEnd(builder) builder.Finish(root) output = bytes(builder.Output()) stub = greeter_grpc_fb.GreeterStub(channel) say_hello(stub, output) say_many_hellos(stub, output) main()