1*cc02d7e2SAndroid Build Coastguard Worker# Unix Domain Socket Example in gRPC Python 2*cc02d7e2SAndroid Build Coastguard Worker 3*cc02d7e2SAndroid Build Coastguard Worker## Check Our Guide First 4*cc02d7e2SAndroid Build Coastguard Worker 5*cc02d7e2SAndroid Build Coastguard WorkerFor 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). 6*cc02d7e2SAndroid Build Coastguard Worker 7*cc02d7e2SAndroid Build Coastguard Worker## Overview 8*cc02d7e2SAndroid Build Coastguard Worker 9*cc02d7e2SAndroid Build Coastguard WorkerThis 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. 10*cc02d7e2SAndroid Build Coastguard Worker 11*cc02d7e2SAndroid Build Coastguard WorkerSpecifically, this example will bind the server to the following UDS addresses, and use clients to connect to them: 12*cc02d7e2SAndroid Build Coastguard Worker 13*cc02d7e2SAndroid Build Coastguard Worker* `unix:path`: setting the unix domain socket path relatively or absolutely 14*cc02d7e2SAndroid Build Coastguard Worker* `unix://absolute_path`: setting the absolute path of the unix domain socket 15*cc02d7e2SAndroid Build Coastguard Worker 16*cc02d7e2SAndroid Build Coastguard Worker## Prerequisite 17*cc02d7e2SAndroid Build Coastguard Worker 18*cc02d7e2SAndroid Build Coastguard WorkerThe Python interpreter should have `grpcio` and `protobuf` installed. 19*cc02d7e2SAndroid Build Coastguard Worker 20*cc02d7e2SAndroid Build Coastguard Worker## Running The Example 21*cc02d7e2SAndroid Build Coastguard Worker 22*cc02d7e2SAndroid Build Coastguard WorkerStarting the server: 23*cc02d7e2SAndroid Build Coastguard Worker 24*cc02d7e2SAndroid Build Coastguard Worker``` 25*cc02d7e2SAndroid Build Coastguard Worker$ python3 greeter_server.py 26*cc02d7e2SAndroid Build Coastguard WorkerINFO:root:Server listening on: unix:helloworld.sock 27*cc02d7e2SAndroid Build Coastguard WorkerINFO:root:Server listening on: unix:///tmp/helloworld.sock 28*cc02d7e2SAndroid Build Coastguard Worker... 29*cc02d7e2SAndroid Build Coastguard Worker``` 30*cc02d7e2SAndroid Build Coastguard Worker 31*cc02d7e2SAndroid Build Coastguard Worker``` 32*cc02d7e2SAndroid Build Coastguard Worker$ python3 async_greeter_server.py 33*cc02d7e2SAndroid Build Coastguard WorkerINFO:root:Server listening on: unix:helloworld.sock 34*cc02d7e2SAndroid Build Coastguard WorkerINFO:root:Server listening on: unix:///tmp/helloworld.sock 35*cc02d7e2SAndroid Build Coastguard Worker... 36*cc02d7e2SAndroid Build Coastguard Worker``` 37*cc02d7e2SAndroid Build Coastguard Worker 38*cc02d7e2SAndroid Build Coastguard WorkerConnecting with a client: 39*cc02d7e2SAndroid Build Coastguard Worker 40*cc02d7e2SAndroid Build Coastguard Worker``` 41*cc02d7e2SAndroid Build Coastguard Worker$ python3 greeter_client.py 42*cc02d7e2SAndroid Build Coastguard WorkerINFO:root:Received: Hello to unix:helloworld.sock! 43*cc02d7e2SAndroid Build Coastguard WorkerINFO:root:Received: Hello to unix:///tmp/helloworld.sock! 44*cc02d7e2SAndroid Build Coastguard Worker``` 45*cc02d7e2SAndroid Build Coastguard Worker 46*cc02d7e2SAndroid Build Coastguard Worker``` 47*cc02d7e2SAndroid Build Coastguard Worker$ python3 async_greeter_client.py 48*cc02d7e2SAndroid Build Coastguard WorkerINFO:root:Received: Hello to unix:helloworld.sock! 49*cc02d7e2SAndroid Build Coastguard WorkerINFO:root:Received: Hello to unix:///tmp/helloworld.sock! 50*cc02d7e2SAndroid Build Coastguard Worker``` 51