Python поддерживает сокет? - PullRequest
0 голосов
/ 05 марта 2011

Эй, я работаю над проектом Python с использованием сокетов. В основном я хочу зациклить соединение с хостом для пользовательского ввода. Вот что я пытаюсь:

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

Но когда я зацикливаю сокет и пытаюсь подключиться к localhost через порт 80, я получаю сообщение об ошибке, сообщающее, что транспортная конечная точка все еще подключена или что-то в этом роде. Как я могу устранить эту проблему?

Ответы [ 3 ]

2 голосов
/ 05 марта 2011

Звоните connect за пределы цикла while. Вам нужно подключиться только один раз.

1 голос
/ 05 марта 2011

Поместите sock.connect вне вашего while True.

0 голосов
/ 05 марта 2011

Вам нужно подключиться к хосту только один раз, тогда вы можете запустить свой цикл.Попробуйте:

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

Если бы тело вашего цикла было sock.close(), вам нужно было бы снова .connect() в верхней части цикла.Но вы, вероятно, не хотите отключаться и подключаться каждый раз, поэтому сделайте это.

...