Показать сообщение отдельно
  #9  
Старый 15.10.2024, 19:51
Nil A
Guest
 
Сообщений: n/a
По умолчанию Фидософт в real-mode, чтобы работал с >64KB письмами

Nil A написал(а) к Vitaliy Aksyonov в Oct 24 18:34:54 по местному времени:

Нello, Vitaliy!

14 Oct 24 23:18, from Vitaliy Aksyonov -> Nil A:

NA>> НPT тоссеру ваще не нужно ВСЁ сообщение в памяти держать. Ему
NA>> надо поискать клуджи, поискать origin, seen-by, path, а потом
NA>> читать байты из исходного pkt, и перекладывать в другие pkt.

VA> Так-то не надо, но никто не гарантирует, что клуджи будут в
VA> начале/конце письма (с небольшими исключениями),

А вот я тоже хотел спросить. Подскажите, люди грамотные, а лучше в доку ткните. Могут ли клуджи идти уже после первого неклуджа? Вроде могут, но так делать не хорошо, процесс парсенья усложняют.

VA> а чтобы прочитать PATН/SEEN-BY - письмо таки придётся полностью
VA> прочитать.

Origin, path, seen-by - надо искать с конца просто.

Кстати, много фидософта, написанного не программистами, ищут первый origin, и ошибаются, потому что это форвард какой-нибудь.

VA> Конечно, в памяти его держать совсем необязательно.

Спасибо что согласился со мной.

VA> О. Хочешь свой тоссер написать? ;)

А зачем рынку ещё один тоссер? Рынку надо писать приложки, а я не умею.

VA> Или может hpt поправить, чтобы он не держал всё в памяти?

Это интереснее уже, но править надо с smapi api. Кстати, там уже можно вычитывать тело письма не целиком, а сколько байтов тебе надо, со смещением. Но круче всего получить некий итератор, чтобы по нему елозить по письму.

VA> Или так - поговорить? ;)

Стопудово поговорить.

VA> Ты же видел, как старые фидошные проги "сериализуют" данные на диск.
VA> Фигак - и записали объект из памяти. А чё, удобно. Только бывают
VA> всякие Big Endian.

К сожалению, так делали все в начале 90, включая коммерческий софт.

VA> А ещё никто не гарантирует, что int везде будет 4 байта. Даже то, что
VA> байт - это 8 бит.

Ну вот тут фидошники многие знали, и часто typedef какой-нибудь торчит.

Best Regards, Nil
--- GoldED+/LNX 1.1.5-b20240306
Ответить с цитированием