James Kuszmaul | 8e62b02 | 2022-03-22 09:33:25 -0700 | [diff] [blame^] | 1 | import sys |
| 2 | import argparse |
| 3 | import grpc |
| 4 | |
| 5 | sys.path.insert(0, '../../../../../flatbuffers/python') |
| 6 | |
| 7 | import flatbuffers |
| 8 | from models import HelloReply, HelloRequest, greeter_grpc_fb |
| 9 | |
| 10 | parser = argparse.ArgumentParser() |
| 11 | parser.add_argument("port", help="server port to connect to", default=3000) |
| 12 | parser.add_argument("name", help="name to be sent to server", default="flatbuffers") |
| 13 | |
| 14 | def say_hello(stub, hello_request): |
| 15 | reply = stub.SayHello(hello_request) |
| 16 | r = HelloReply.HelloReply.GetRootAs(reply) |
| 17 | print(r.Message()) |
| 18 | |
| 19 | def 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 | |
| 25 | def 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 | |
| 40 | main() |