尝试连接套接字时出现BlockingIOError

时间:2017-10-02 18:18:08

标签: python python-3.x sockets

我正在使用Python构建一个TCP客户端,它应该尝试连接到服务器,直到建立连接或程序关闭。 我在阻塞套接字上定义了超时,但在第一次尝试连接后我收到了

BlockingIOError: [Errno 114] Operation already in progress

这是一个小代码示例:

import socket

TCP_IP = '192.168.1.10'
TCP_PORT = 7


class TcpClient:
    def __init__(self):
        self.s = socket.socket(socket.AF_INET,  socket.SOCK_STREAM)
        self.s.settimeout(5)

    def connect(self):
        self.s.connect((TCP_IP,  TCP_PORT))


if __name__ == "__main__":
    client = TcpClient()
    while True:
        try:
            client.connect()
        except socket.timeout:
            pass

如果我正确理解python文档,则在连接尝试失败时应该发生超时。这意味着套接字不再尝试建立连接,但它似乎仍然存在。

我也试图关闭套接字,但是我需要为每次新​​的连接尝试创建一个新的套接字。我无法相信这是一个完美的解决方案。

我愿意就此问题提出任何建议或帮助。 谢谢!

0 个答案:

没有答案