1import sys 2import argparse 3import grpc 4 5sys.path.insert(0, '../../../../../flatbuffers/python') 6 7import flatbuffers 8from models import HelloReply, HelloRequest, greeter_grpc_fb 9 10parser = argparse.ArgumentParser() 11parser.add_argument("port", help="server port to connect to", default=3000) 12parser.add_argument("name", help="name to be sent to server", default="flatbuffers") 13 14def say_hello(stub, hello_request): 15 reply = stub.SayHello(hello_request) 16 r = HelloReply.HelloReply.GetRootAs(reply) 17 print(r.Message()) 18 19def say_many_hellos(stub, hello_request): 20 greetings = stub.SayManyHellos(hello_request) 21 for greeting in greetings: 22 r = HelloReply.HelloReply.GetRootAs(greeting) 23 print(r.Message()) 24 25def main(): 26 args = parser.parse_args() 27 28 with grpc.insecure_channel('localhost:' + args.port) as channel: 29 builder = flatbuffers.Builder() 30 ind = builder.CreateString(args.name) 31 HelloRequest.HelloRequestStart(builder) 32 HelloRequest.HelloRequestAddName(builder, ind) 33 root = HelloRequest.HelloRequestEnd(builder) 34 builder.Finish(root) 35 output = bytes(builder.Output()) 36 stub = greeter_grpc_fb.GreeterStub(channel) 37 say_hello(stub, output) 38 say_many_hellos(stub, output) 39 40main()