Уведомления

Группа в Telegram: @pythonsu

#1 Май 7, 2012 15:03:20

SOUR
От:
Зарегистрирован: 2010-09-14
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Зачем так парсить :?

Howdy!
Есть программа, надо её распоточить, что не проблема, НО я не понимаю, зачем так было извращаться над первым элементов в списке packets, в каждой итерации…

accumulated = ''
    while True:
        data = sck.recv(1024)
        if not data:
            break
        packets = data.split('\x00')
        packets[0] = accumulated + packets[0]
        packets, accumulated = packets[:-1], packets[-1]
        pk=""
        for packet in packets:
            pk = parse(packet)
            process(pk)

+ я не совсем понимаю принцип деления на строку ‘\x00’ озночающая пустой символ О.о, неужто символ NULL в 16ричном представлении лежит со всеми тегами в XML документе?



Отредактировано SOUR (Май 7, 2012 16:26:05)

Офлайн

#2 Май 8, 2012 14:44:42

dehun
От: Ukraine::Kiev
Зарегистрирован: 2012-04-25
Сообщения: 26
Репутация: +  3  -
Профиль   Отправить e-mail  

Зачем так парсить :?

там ресив из сокета. скорей всего из тцп соцека.
тцп стримовый протокол => вероятней всего 0х00 есть просто разделитель между сообшениями.
ведь с одной стороны могли сделать 2 раза send с разными пакетами. а мы здесь их могли выташить одним ресивом.

Офлайн

#3 Май 9, 2012 08:30:33

SOUR
От:
Зарегистрирован: 2010-09-14
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Зачем так парсить :?

dehun
Спасибо! Тема закрыта.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version