gpt4 book ai didi

python - 如何识别连接到 AF_UNIX 套接字的客户端?

转载 作者:太空宇宙 更新时间:2023-11-04 03:31:44 26 4
gpt4 key购买 nike

对于 Python 中的 AF_UNIX 套接字,“客户端地址”的含义是什么?

sock = socket.socket( socket.AF_UNIX, socket.SOCK_STREAM )
sock.bind( "/tmp/sock" )
sock.listen( 1 )
while True:
connection, client_address = sock.accept()
print( client_address ) # prints : b''

有没有办法在服务器端获取有关已连接客户端的任何信息?

最佳答案

对于 UNIX 套接字; socket.acept() 将返回 socket, ()。即:一个空元组。

例如,您可以通过查看 socket.fileno() 来获取有关“客户端”套接字的一些信息。

例如修改后的 echoserverunix.py :

$ python examples/echoserverunix.py 
<registered[*] (<Debugger/* 19377:MainThread (queued=0) [S]>, <EchoServer/server 19377:MainThread (queued=2) [R]> )>
<started[server] (<EchoServer/server 19377:MainThread (queued=1) [R]> )>
<registered[select] (<Select/select 19377:MainThread (queued=0) [S]>, <EchoServer/server 19377:MainThread (queued=2) [R]> )>
<ready[server] (<EchoServer/server 19377:MainThread (queued=1) [R]>, ('/tmp/test.sock', None) )>
<_read[server] (<socket._socketobject object at 0x7fa4c0b8a210> )>
<connect[server] (<socket._socketobject object at 0x7fa4c0b8a1a0> )>
<socket._socketobject object at 0x7fa4c0b8a1a0>
6
()

根据accept()手册页:

Return Value

On success, these system calls return a nonnegative integer that is a descriptor for the accepted socket. On error, -1 is returned, and errno is set appropriately.

因此,在 C 级别,您取回了“文件描述符”,Python 从中创建了一个 socket 对象。但是除了文件描述符之外,没有客户端连接的对等地址或路径。

关于python - 如何识别连接到 AF_UNIX 套接字的客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30880183/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com