Python 如何保持套接字存活?

0 投票
3 回答
2185 浏览
提问于 2025-04-16 13:02

嘿,我正在做一个使用套接字的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端口时,出现了一个错误,提示说传输端点仍然连接,类似这样的意思。我该如何解决这个问题呢?

3 个回答

0

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

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

如果你的循环里面有 sock.close() 这个操作,那么你就需要在每次循环开始时再用 .connect() 重新连接。不过你可能不想每次都断开再连接,所以按照上面的做法就可以了。

1

sock.connect 这行代码放到你的 while True 循环外面。

2

connect 放在 while 循环外面。你只需要连接一次就够了。

撰写回答