tupoi
@tupoi

Почему асинхронный http сервер не принимает подключения?

Доброго времени суток. Только начал разбираться с асинхронным программированием в Python 3.
Необходимо реализовать клиент серверное приложение:
1. Клиент получается к серверу, получает от него в ответ настройки для подключения (порт, кол-во файлов, формат) в формате json по http
2. Отправив эти настройки сервер создает сокет на том порту, который отправил клиенту и ждет подключения его и принятие файлов в нужном количестве и нужных форматов, при этом продолжает оформлять других подключившихся на свободные порты.

import tornado.ioloop
import tornado.web
import time

def looper():
    time.sleep(10)

class MainHandler(tornado.web.RequestHandler):
    def get(self, *args, **kwargs):
        self.write('hello')
        self.finish()
        looper()

def app():
    return tornado.web.Application([
        (r'/', MainHandler),
    ])

if __name__ == "__main__":
    app = app()
    app.listen(8888)
    tornado.ioloop.IOLoop.current().start()


это код сервера, это не рабочий вариант, просто решил упростить задачу чтобы проверить, когда первый раз подключаюсь, то все нормально, при повторном подключении ничего не выходит и жду 10 секунд, можно ли как-то сделать, чтобы он отправил json, вызвал нужную функцию из экземпляра класса и передал ей параметры те же, а потом опять стал слушать? при этом шел прием файлов через сокет
Примеры или ответы подойдут как на Tornado, так и на aiohttp
Заранее спасибо
  • Вопрос задан
  • 334 просмотра
Пригласить эксперта
Ответы на вопрос 1
AMar4enko
@AMar4enko
При работе с event loop забудьте про любые блокирующие операции ввода/вывода
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы