python - 如何知道python中tcp connect的状态?

标签 python sockets tcp tcpclient

在 python 中,tcp 连接返回成功,即使连接请求在服务器端排队。有什么办法可以知道在客户端是否接受发生或在服务器端排队?

最佳答案

该问题与 Python 无关,而是由底层套接字机制引起的,它尽最大努力对程序隐藏低级网络事件。我能想象的最好的方法是尝试更高级别的协议(protocol)握手(发送一个问候字符串并设置接收答案的超时时间),但这对以下问题没有区别:

  • 连接在对端排队,但仍未被接受
  • 已接受连接,但由于任何其他原因服务器无法在分配的时间内处理它
  • (仅当超时非常短时)机器(包括发送方)和网络拥塞增加了比超时更大的延迟

我的建议很简单,您甚至不想担心如此低级的细节。由于连接被接受后服务器端可能会出现问题,您将不得不处理可能的更高级别的协议(protocol)错误、超时或连接丢失。只是说接受连接后的超时和接受连接的超时没有区别。

关于python - 如何知道python中tcp connect的状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48089780/

相关文章:

python - 在 Pandas 中导入 csv 数据时如何删除空格 "before"列名

Python - Tkinter - 有趣的 place()

python - bool 索引中列表理解的性能

python - 使用 python-jose 将 Python 后端从 Gitkit 迁移到 Firebase-Auth 以进行 token 验证

Java Sockets TCP 发送和接收

java - 无法读取在 C++ 中序列化的 Java 数据

tcp - rfc-info "help: ways_to_get_rfcs"死了吗?

c++ - 如何在 C++ 中清空套接字读/写缓冲区

c++ - c++ tcpserver 可以接收无符号字符吗?

c# TCP丢包