Не удается получить соединение с serversocket.accept () - PullRequest
0 голосов
/ 23 апреля 2020

У меня проблема с попыткой собрать tcp-сервер с сокетом. Приведенный ниже код работает до connection, client_address = serversocket.accept().

. Для пояснения, в чем заключается идея: я хотел бы отправить xml от клиента через TCP / IP в мою программу. Я пытался получить данные с помощью некоторых инструментов portlistener, и это работало нормально. Теперь я хотел бы стать моим собственным слушателем, и я борюсь. Возможно, я ошибаюсь в своих мыслях, но когда средство прослушивания получает соединение, этот код также должен работать, даже когда я не понимаю, как именно работает клиент. Как вы можете видеть, я использую некоторые команды печати для отладки, и последнее сообщение в консоли:

. Listen done

Пожалуйста, дайте мне подсказку, что происходит не так .

import socket
import sys

serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

port = 12000
address = (socket.gethostname(), port)
print(address)
serversocket.bind(address)
print(".bind done")
serversocket.listen(5)
print(".listen done")

connection, client_address = serversocket.accept()
print(" connection done")

with connection:
    try:
        print >>sys.stderr, 'connection from', client_address


        while True:
            data = connection.recv(16)
            print >>sys.stderr, 'received "%s"' % data
            if data:
                print >>sys.stderr, 'data received"'
            else:
                print >>sys.stderr, 'no more data from', client_address
                break

    finally:

         connection.close()
...