Hey I'm working on a python project using sockets. Basically I want to loop a connection to a host for user input. Here is what I'm trying:
while True:
sock.connect((host, port))
inputstring = "> "
userInput = raw_input(inputstring)
sock.send(userInput + '\r\n\r\n')
recvdata = sock.recv(socksize)
print(recvdata)
But when I loop the socket and try connecting to localhost on port 80 I get an error saying the transport endpoint is still connected or something like that. How can I eliminate that problem?
3 Answers 3
Call connect outside the while loop. You only need to connect once.
Comments
Put the sock.connect outside of your while True.
1 Comment
You only need to connect to the host once, then you can run your loop. Try:
sock.connect((host, port))
while True:
inputstring = " > "
# etc
If the body of your loop were to sock.close(), you would need to .connect() again at the top of the loop. But you probably don't want to disconnect and reconnect each time, so do the above.
Comments
Explore related questions
See similar questions with these tags.