Уведомления

Группа в Telegram: @pythonsu

#1 Июль 1, 2019 20:39:08

habrman
Зарегистрирован: 2019-07-01
Сообщения: 28
Репутация: +  0  -
Профиль   Отправить e-mail  

читать из бесконечного потока

есть скрипт пхп, который отдает данные в бесконечном потоке
как правильно их считывать?
счас сделал так

uri = 'путь к скрипту'
r = urlopen(uri)
while True:
text += r.read(1).decode(r.headers.get_content_charset())

Офлайн

#2 Июль 11, 2019 15:19:05

habrman
Зарегистрирован: 2019-07-01
Сообщения: 28
Репутация: +  0  -
Профиль   Отправить e-mail  

читать из бесконечного потока

up
будут идеи?

Офлайн

#3 Июль 11, 2019 15:56:58

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

читать из бесконечного потока

с таким описанием видимо ни у кого нет, кроме как бесконечный пото считать нельзя потому что он бесконечный. Но это скорее что то из философии



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#4 Июль 11, 2019 16:00:21

habrman
Зарегистрирован: 2019-07-01
Сообщения: 28
Репутация: +  0  -
Профиль   Отправить e-mail  

читать из бесконечного потока

пока данные есть- мы их считываем, когда данных нет -тогда ждем
а как сетевые программы работают? происходит соединение, затем пришли данные- их обработали, и дальше waiting

Отредактировано habrman (Июль 11, 2019 16:04:31)

Офлайн

#5 Июль 11, 2019 16:43:50

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

читать из бесконечного потока

Тогда объясните что значит “правильно считывать”, какие у вас конкретные вопросы или проблемы?



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#6 Июль 11, 2019 17:00:50

habrman
Зарегистрирован: 2019-07-01
Сообщения: 28
Репутация: +  0  -
Профиль   Отправить e-mail  

читать из бесконечного потока

конкретный вопрос в первом сообщении

Офлайн

#7 Июль 11, 2019 17:06:05

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

читать из бесконечного потока

habrman
конкретный вопрос в первом сообщении
Что в нем конкретного то?
Ваш код не работает? Вы не написали. Какие ошибки, если не работает?
Ваш код работает? Что вас тогда не устраивает?
Вы конктетизируйте как-нибудь суть топика.



Офлайн

#8 Июль 11, 2019 17:53:54

habrman
Зарегистрирован: 2019-07-01
Сообщения: 28
Репутация: +  0  -
Профиль   Отправить e-mail  

читать из бесконечного потока

код работает но мне не нравится, что постоянно идет попытка чтения 1 байта, даже когда нет данных
может есть возможность читать только когда приходят данные?
например подписаться на событие прихода данных

Офлайн

#9 Июль 11, 2019 21:07:22

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

читать из бесконечного потока

habrman
что постоянно идет попытка чтения 1 байта
Налицо непонимание как это работает. При вызове r.read(1) питон перестает работать. Операционная система передает ему управление как только получает данные по сети. Вовсе не обязательно читать по 1 байту можете и больше куски сделать.



Офлайн

#10 Июль 12, 2019 04:56:02

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10024
Репутация: +  857  -
Профиль   Отправить e-mail  

читать из бесконечного потока

habrman
есть скрипт пхп, который отдает данные в бесконечном потоке
как правильно их считывать?
счас сделал так
  
uri = 'путь к скрипту'
        r = urlopen(uri)
        while True:
            text += r.read(1).decode(r.headers.get_content_charset())
Протокол HTTP так не работает. urlopen() - это функция для работы по HTTP-протоколу. Есть запрос, есть ответ, всё это ограничено размером данных.
Если же у тебя бесконечные данные, то нужно и другое соединение открыть. Использовать для это модуль socket, для отслеживания активности на дескрипторах есть модуль select.

https://docs.python.org/3/library/socket.html
https://docs.python.org/3/library/select.html

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



Отредактировано py.user.next (Июль 12, 2019 04:58:48)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version