Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Network
  • » Кто нибудь может дать простой код работающего tornado HTTPServer-а и клиента к нему написанного на питоне [RSS Feed]

#1 Май 13, 2019 15:22:34

BOBAH
Зарегистрирован: 2019-02-17
Сообщения: 38
Репутация: +  0  -
Профиль   Отправить e-mail  

Кто нибудь может дать простой код работающего tornado HTTPServer-а и клиента к нему написанного на питоне

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

Офлайн

#2 Май 13, 2019 17:04:56

vic57
Зарегистрирован: 2015-07-07
Сообщения: 893
Репутация: +  126  -
Профиль   Отправить e-mail  

Кто нибудь может дать простой код работающего tornado HTTPServer-а и клиента к нему написанного на питоне

Офлайн

#3 Май 15, 2019 12:44:17

BOBAH
Зарегистрирован: 2019-02-17
Сообщения: 38
Репутация: +  0  -
Профиль   Отправить e-mail  

Кто нибудь может дать простой код работающего tornado HTTPServer-а и клиента к нему написанного на питоне

TSP server это конечно хорошо, но насколько я понимаю, например на heroku он работать не будет, или я неправильно понимаю???

Офлайн

#4 Май 15, 2019 12:58:04

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Кто нибудь может дать простой код работающего tornado HTTPServer-а и клиента к нему написанного на питоне

BOBAH, а почему вы так решили? Поделитесь размышлениями.



Офлайн

#5 Май 15, 2019 15:02:46

vic57
Зарегистрирован: 2015-07-07
Сообщения: 893
Репутация: +  126  -
Профиль   Отправить e-mail  

Кто нибудь может дать простой код работающего tornado HTTPServer-а и клиента к нему написанного на питоне

BOBAH
TSP server это конечно хорошо, но насколько я понимаю, например на heroku он работать не будет, или я неправильно понимаю???
ну так возьмите helloworld из примеров.
 import tornado.ioloop
import tornado.web
from random import randint 
def f(l,n):
    return ' '.join([str(randint(-n,n)) for _ in range(l)])
class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write(f(100,100))
if __name__ == "__main__":
    app = tornado.web.Application([
        (r"/", MainHandler),
    ])
    app.listen(8000)
    tornado.ioloop.IOLoop.current().start()
 >>> import requests
>>> r = requests.get('http://localhost:8000')
>>> r
<Response [200]>
>>> r.text
'11 -95 55 10 1 28 -24 59 -72 28 -49 8 83 -78 64 -68 -40 -48 -23 43 -67 12 76 -21 20 56 -77 -89 -98 -86 53 63 62 -94 -28 48 0 -51 -26 -85 75 9 -15 44 95 -20 -82 27 33 -36 8 31 100 85 38 93 -89 -7 25 92 72 24 -12 -78 52 40 -15 -89 -85 -92 78 12 -55 86 -97 -13 -10 8 -43 43 -28 47 39 57 23 -90 -83 -24 -99 -70 74 -90 -80 11 -85 -66 93 -28 -95 39'
>>> 


Отредактировано vic57 (Май 15, 2019 15:20:49)

Офлайн

#6 Май 16, 2019 14:19:01

BOBAH
Зарегистрирован: 2019-02-17
Сообщения: 38
Репутация: +  0  -
Профиль   Отправить e-mail  

Кто нибудь может дать простой код работающего tornado HTTPServer-а и клиента к нему написанного на питоне

FishHook
а почему вы так решили? Поделитесь размышлениями.

Мои размышления:
Адрес TCP сервера: 127.0.0.1
Адрес HTTP сервера: http:server.com/

поскольку 1-го я не увидел, предположил, что так просто, для использования, его не получить.


vic57
ну так возьмите helloworld из примеров.
А при использовании web - все данные легко читаются даже в окне браузера.

Заранее приношу извинения, если не прав.

Офлайн

#7 Май 16, 2019 15:29:41

vic57
Зарегистрирован: 2015-07-07
Сообщения: 893
Репутация: +  126  -
Профиль   Отправить e-mail  

Кто нибудь может дать простой код работающего tornado HTTPServer-а и клиента к нему написанного на питоне

BOBAH
А при использовании web - все данные легко читаются даже в окне браузера.
так браузер и есть клиент в данном случае. вы чего хотите-то?
клиент отправляет запросы, сервер на них отвечает и неважно на чем клиент написан

Офлайн

#8 Май 18, 2019 06:41:54

BOBAH
Зарегистрирован: 2019-02-17
Сообщения: 38
Репутация: +  0  -
Профиль   Отправить e-mail  

Кто нибудь может дать простой код работающего tornado HTTPServer-а и клиента к нему написанного на питоне

Решил использовать WebSocket от tornado, код если кому надо:

 from tornado.web import Application
from tornado.websocket import WebSocketHandler
from tornado.ioloop import IOLoop
from tornado.options import options, define
define(name='port', default="PORT", help='Port')
class MyServer(WebSocketHandler):
    def open(self, *args: str, **kwargs: str):
        self.write_message('Вы подключились к серверу')
def main():
    print('Server run')
    options.parse_command_line()
    app = Application([('/', MyServer)])
    app.listen(options.port)
    IOLoop.instance().start()
if __name__ == '__main__':
    main()
Procfile(для heroku):
web: python server.py - -port=$PORT

Отредактировано BOBAH (Май 18, 2019 07:44:37)

Офлайн

#9 Май 18, 2019 08:02:25

BOBAH
Зарегистрирован: 2019-02-17
Сообщения: 38
Репутация: +  0  -
Профиль   Отправить e-mail  

Кто нибудь может дать простой код работающего tornado HTTPServer-а и клиента к нему написанного на питоне

А ну еще мой велосипедный client:

 from tornado.ioloop import IOLoop
from tornado.websocket import websocket_connect
from tornado.gen import coroutine
class Client():
    def __init__(self, url):
        self.url = url
        self.ws = None
        self.ioloop = IOLoop().instance()
        self.connect()
        self.ioloop.start()
    @coroutine
    def connect(self):
        print('Попытка подключения')
        try:
            self.ws = yield websocket_connect(self.url)
        except Exception as s:
            print('Ошибка', s)
        else:
            print('Подключенно')
            self.run()
    @coroutine
    def run(self):
        while True:
            message = yield self.ws.read_message()
            if message is None:
                self.ws = None
                print('Соединение прерванно')
                break
            print(message)
if __name__ == '__main__':
    Client('ws://domain.name')

Отредактировано BOBAH (Май 18, 2019 08:03:17)

Офлайн

#10 Май 18, 2019 13:32:08

vic57
Зарегистрирован: 2015-07-07
Сообщения: 893
Репутация: +  126  -
Профиль   Отправить e-mail  

Кто нибудь может дать простой код работающего tornado HTTPServer-а и клиента к нему написанного на питоне

BOBAH
Решил использовать WebSocket от tornado, код если кому надо:
у вас кроме соединения и нет ничего, как это использовать ?
https://en.proft.me/2014/05/16/realtime-web-application-tornado-and-websocket/

Отредактировано vic57 (Май 18, 2019 13:32:40)

Офлайн

  • Начало
  • » Network
  • » Кто нибудь может дать простой код работающего tornado HTTPServer-а и клиента к нему написанного на питоне[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version