2015-10-02 2 views
0
import socket 
sock = socket.socket() 
sock.bind(('127.0.0.1', 1600)) 
sock.listen(1) 
(client_sock,client_address) = sock.accept() 
client_name = client_sock.recv(1024) 
client_sock.send('hi its '+client_name) 
client_sock.close() 
sock.close(); 

Так я бегу на CMD командной строки, файл, содержащий код, приведенный выше, и все я получаю это: enter image description hereПочему мой код не отвечает на запросы?

Как можно видеть мой ЦМД, как будто ожидая чего-то, оно не распечатать «Привет его ...» и никогда не заканчивается. Почему мой код не работает?

+0

Вы что-то посылаете? – molbdnilo

+1

Он блокируется в 'recv()', поэтому «Привет его» никогда не отправляется. –

ответ

0

Это просто: вы должны сначала отправить данные, а затем получить. Команда приема ожидает до истечения таймаута (если она установлена), а затем переходите. Помните, что вы также должны печатать полученные данные. Лучшая практика для выполнения того, что вы хотите сделать, - это подход сервер-клиент, имеющий как минимум два разных потока.

Смежные вопросы