【问题标题】:Python keeping socket alive?Python保持套接字活着?
【发布时间】:2011-03-05 03:10:52
【问题描述】:

嘿,我正在开发一个使用套接字的 python 项目。基本上我想循环连接到主机以供用户输入。这是我正在尝试的:


while True:
    sock.connect((host, port))
    inputstring = " > "
    userInput = raw_input(inputstring)
    sock.send(userInput + '\r\n\r\n')
    recvdata = sock.recv(socksize)
    print(recvdata)

但是当我循环套接字并尝试连接到端口 80 上的 localhost 时,我收到一条错误消息,指出传输端点仍处于连接状态或类似情况。我怎样才能消除这个问题?

【问题讨论】:

    标签: python sockets loops tcp connection


    【解决方案1】:

    while 循环之外调用connect。您只需连接一次。

    【讨论】:

      【解决方案2】:

      sock.connect 放在while True 之外。

      【讨论】:

      • 是的,因为您没有关闭该套接字,而是一遍又一遍地尝试连接到它。
      【解决方案3】:

      你只需要连接到主机一次,然后你就可以运行你的循环了。试试:

      sock.connect((host, port))
      while True:
          inputstring = " > "
          # etc
      

      如果你的循环体是sock.close(),你需要在循环的顶部再次.connect()。但是您可能不想每次都断开并重新连接,所以请按照上述操作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-07-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-23
        • 2014-03-19
        • 2021-12-26
        • 1970-01-01
        相关资源
        最近更新 更多