xref: /aosp_15_r20/external/grpc-grpc/examples/python/uds/README.md (revision cc02d7e222339f7a4f6ba5f422e6413f4bd931f2)
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