Initial working version

master
mandlm 2020-03-09 21:15:48 +01:00
commit 959be5996a
4 changed files with 56 additions and 0 deletions

3
bootstrap.sh Executable file
View File

@ -0,0 +1,3 @@
python3 -m grpc_tools.protoc -I protos --python_out=python-server --grpc_python_out=python-server protos/hello.proto
python3 -m grpc_tools.protoc -I protos --python_out=python-client --grpc_python_out=python-client protos/hello.proto

13
protos/hello.proto Normal file
View File

@ -0,0 +1,13 @@
syntax = "proto3";
message GreetRequest {
string message = 1;
}
message GreetReply {
string message = 1;
}
service HelloService {
rpc greet(GreetRequest) returns (GreetReply);
}

13
python-client/greet_client.py Executable file
View File

@ -0,0 +1,13 @@
#!/usr/bin/env python3
import grpc
import hello_pb2
import hello_pb2_grpc
channel = grpc.insecure_channel("localhost:50505")
stub = hello_pb2_grpc.HelloServiceStub(channel)
reply = stub.greet(hello_pb2.GreetRequest(message="Hello service"))
print(f"service replied \"{reply.message}\"")

27
python-server/greet_server.py Executable file
View File

@ -0,0 +1,27 @@
#!/usr/bin/env python3
import grpc
import hello_pb2
import hello_pb2_grpc
from concurrent import futures
import time
class GreetServer(hello_pb2_grpc.HelloServiceServicer):
def greet(self, request, context):
print(f"received \"{request.message}\"")
return hello_pb2.GreetReply(message="Hello back")
def serve():
server = grpc.server(futures.ThreadPoolExecutor(max_workers=10))
hello_pb2_grpc.add_HelloServiceServicer_to_server(GreetServer(), server)
server.add_insecure_port("[::]:50505")
server.start()
server.wait_for_termination()
if __name__ == "__main__":
print("serving...")
serve()