Python 如何保持套接字存活?
嘿,我正在做一个使用套接字的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
循环外面。你只需要连接一次就够了。