[I128-1189] Подключение толстых АРМов через SocketProxy с удаленных компьютеров завершается ошибкой протокола


НАЧАЛО >> Оглавление >> Общее описание >> История изменений >> Что нового в проекте I128 >> Версия 2026.2.1 >> [I128-1189] Подключение толстых АРМов через SocketProxy с удаленных компьютеров завершается ошибкой протокола📄 Скачать в DOCX


Тип Версия Статус Приоритет Исполнитель
⚙️ Исправление ошибок 2026.2.1 🔘 Завершено Средний Ilya Mikhaylenko

Компоненты: ИРБИС 128. Модуль Server64 - Сервер ИРБИС 64

Завершено: 22.06.2026 05:52

Причина подтверждена в обработке TCPпакетов SocketProxy для протокола IRBIS64. Толстый клиент отправляет запрос в виде length + перевод строки + payload, но TCP не гарантирует доставку всего запроса одним чтением. SocketProxy передавал каждый результат socket_read() в Server64/ExecCommand как полный пакет. На локальном компьютере пакет обычно приходил целиком, а при подключении с другого компьютера мог быть фрагментирован, изза чего сервер получал усеченный запрос и возвращал ошибки протокола/контроля длины (~~2222, ~~1112).

Исправление: для протокола IRBIS64 добавлена буферизация входящих TCP-фрагментов до полного пакета по первой транспортной строке длины. Базовый SocketProxy получил общую точку расширения PrepareInput(), поэтому поведение других протоколов не изменяется. Для нестандартного входа без числовой строки длины сохранена прежняя обработка.

-

1. Связанные задачи

1.1. 🔗 Соответствует задача: SD-88

[SD-88] Ошибка подключения при тестировании проксирования сервера Статус: Готово | Автор: ИРБИС-Консультант