根据我对python套接字的理解,有一个读端和一个写端。我也明白你可以关闭套接字的一半(在某些系统上)。此外,您可以通过发送内容并检查异常来检查套接字是否已关闭。
我想知道是否有办法“可靠地”检查服务器是否关闭了套接字的“读取”端,在客户端关闭套接字的“写”端之后。
例如,如果服务器正在运行,那么这是客户端代码:
sock.shutdown(socket.SHUT_WR)
#I want to check if I can still read from the socket at this point in code.
这可能吗?
答案 0 :(得分:2)
根据我对python套接字的理解,有一个读端和一个写端。
没有。套接字是全双工,双向,读/写,......
我也明白你可以关闭套接字的一半(在某些系统上)。
您可以关闭阅读或写作。
此外,您可以通过发送内容并检查异常来检查套接字是否已关闭。
您可以通过发送内容等来检查连接
我想知道是否有办法可靠地"检查服务器是否已关闭" read"套接字的结束,在客户端关闭其后#34;写"套接字的结尾。 如果您是服务器,则不需要检查,因为您是关闭服务器的人。如果您是客户,则无法发送任何内容,因此您无法检查。 例如,如果服务器正在运行,那么这是客户端代码: 我想检查代码中是否仍然可以从套接字读取。 判断您是否仍然可以从套接字读取的唯一方法是尝试从套接字读取。如果对等方已关闭套接字,或半封闭它以进行发送,您将收到流的结束,但是以您的语言显示。这不是你上面提到的问题:你在询问服务器同伴关闭其套接字以供阅读。
sock.shutdown(socket.SHUT_WR)