Reputation: 803
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?
Upvotes: 0
Views: 2215
Reputation: 992717
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.
Upvotes: 0
Reputation: 109326
Call connect
outside the while
loop. You only need to connect once.
Upvotes: 2