| # Unix Domain Socket Example in gRPC Python |
| |
| ## Check Our Guide First |
| |
| For knowing the basics of gRPC Python and the context around the helloworld example, please checkout our gRPC Python [Quick Start guide](https://grpc.io/docs/languages/python/quickstart). |
| |
| ## Overview |
| |
| This example demonstrate how gRPC Python can utilize the gRPC Name Resolution mechanism to specify UDS address for clients and servers. The gRPC Name Resolution mechanism is documented at https://github.com/grpc/grpc/blob/master/doc/naming.md. |
| |
| Specifically, this example will bind the server to the following UDS addresses, and use clients to connect to them: |
| |
| * `unix:path`: setting the unix domain socket path relatively or absolutely |
| * `unix://absolute_path`: setting the absolute path of the unix domain socket |
| |
| ## Prerequisite |
| |
| The Python interpreter should have `grpcio` and `protobuf` installed. |
| |
| ## Running The Example |
| |
| Starting the server: |
| |
| ``` |
| $ python3 greeter_server.py |
| INFO:root:Server listening on: unix:helloworld.sock |
| INFO:root:Server listening on: unix:///tmp/helloworld.sock |
| ... |
| ``` |
| |
| ``` |
| $ python3 async_greeter_server.py |
| INFO:root:Server listening on: unix:helloworld.sock |
| INFO:root:Server listening on: unix:///tmp/helloworld.sock |
| ... |
| ``` |
| |
| Connecting with a client: |
| |
| ``` |
| $ python3 greeter_client.py |
| INFO:root:Received: Hello to unix:helloworld.sock! |
| INFO:root:Received: Hello to unix:///tmp/helloworld.sock! |
| ``` |
| |
| ``` |
| $ python3 async_greeter_client.py |
| INFO:root:Received: Hello to unix:helloworld.sock! |
| INFO:root:Received: Hello to unix:///tmp/helloworld.sock! |
| ``` |