python - 检测 TCP 套接字上是否调用了 `connect()`

标签 python sockets

如果觉得这应该非常明显,但不知何故我没有在文档中找到它:https://docs.python.org/3/library/socket.html

考虑一下

import socket
my_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

如何检查 my_socket 上是否调用了 connect()。目前,我的代码在我的类中设置了一个单独的 bool 值,但我相信应该可以向套接字对象询问这一点。为了澄清起见,我正在编写客户端代码,并且想在我的类中提供一些自省(introspection),以检查套接字是否已连接到服务器。

类似于

my_socket.is_connected()
=> False
my_socket.connect(("127.0.0.1", 42))
=> None
my_socket.is_connected()
=> True

最佳答案

尝试调用 getpeername() 并处理产生的错误或状态(如果未连接)。

关于python - 检测 TCP 套接字上是否调用了 `connect()`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51083560/

相关文章:

Python - 停止无限循环的键盘命令?

C++ 套接字接收错误命令,不是预期的命令

java - Java中HTTP请求中添加HEADER

python - Goto 的替代品,Python 中的标签?

python - 如果另一列中的值匹配,如何填充列中的 nan 值

python - 使用socket编程Python发送图片

本地主机的 c TCP 套接字连接被拒绝

python - 套接字错误 : [Errno 102] Operation not supported on socket

python - Docker-Compose NGINX/uWSGI/Flask 绑定(bind)挂载问题

python - Pandas:如何根据另一列将一列值分配给变量?