【发布时间】:2021-01-08 13:35:50
【问题描述】:
我有如下 Python 中的原始套接字来接收来自 linux 内核的 netlink 消息。
socket.socket(socket.AF_NETLINK, socket.SOCK_RAW, socket.NETLINK_ROUTE)
我正在这个套接字上阻塞recv,并希望从另一个 Python 线程中关闭它。但是,在此套接字上调用 shutdown(socket.SHUT_RD) 会返回错误 ([Errno95] Operation not supported)
这是为什么呢?我们如何关闭这个套接字?我正在使用 Python 3.7
中没有提到这种行为 https://docs.python.org/3/library/socket.html#socket
如下:
注意 close() 释放与连接关联的资源,但不一定立即关闭连接。如果要及时关闭连接,请在close()之前调用shutdown()。
【问题讨论】: