使用Python读取Unix域套接字文件与普通TCP套接字类似:
>>> import socket
>>> import sys
>>>
>>> server_address = '/tmp/tbsocket1' # Analogous to TCP (address, port) pair
>>> sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
>>> sock.connect(server_address)
>>> sock.recv(512)
'*** uWSGI Python tracebacker output ***\n\n'
由于UDS不是普通文件,cat
无法操作它们:
$ sudo cat /tmp/tbsocket1
cat: /tmp/tbsocket1: No such device or address
curl 也不行:
$ sudo curl /tmp/tbsocket1
curl: (3) <url> malformed
如何使用标准命令行工具(如curl)读取或写入Unix域套接字?
PS:在一个奇怪的巧合中,最近非常建议使用curl补丁。