File: client.py

package info (click to toggle)
flatbuffers 2.0.8%2Bdfsg1-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 14,308 kB
  • sloc: cpp: 44,808; python: 6,544; cs: 4,852; java: 4,389; ansic: 1,615; php: 1,455; xml: 973; javascript: 938; sh: 806; makefile: 35
file content (40 lines) | stat: -rw-r--r-- 1,286 bytes parent folder | download | duplicates (14)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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()