|
16 / 16 / 6
Регистрация: 04.03.2014
Сообщений: 160
|
|
Куски пакета от сервера: правильное их соединение и обработка.25.08.2016, 19:15. Показов 1257. Ответов 5
Метки нет (Все метки)
Всем привет. Столкнулся с такой неприятной проблемой. Клиент отправляет на сервер данные, которые обрабатываются на сервере и с ними идет дальнейшая работа. Пакет приходит таким образом
Первые 2 байта тип, 4 байта длина и дальше уже сам объект, в итоге получается что-то вроде такого @#$@$#{тут json объект} Бывает так, что пакеты склеиваются, к примеру приходит так @#$@$#{тут json объект}@#$@$#{тут json объект}@#$@$#{тут json объект} С этим тоже вопрос был решен и склееные пакеты парсятся. Буквально недавно, выявилась другая проблема. Приходит ответ от клиента таким образом @#$@$#{тут json объект обрезается и скобка не закрыта, парсер выдает ошибку, т.к json объект по каким-то причинам неполный. Следующий кусок от клиента приходит такой недостающий кусок предыдущего json объекта}@#$@$#{json объект} бывает так, что новый json объект тоже приходит куском и остальная его часть приходит только при следующем пакете от клиента. В чем проблема может быть? Как ее решить?
0
|
|
| 25.08.2016, 19:15 | |
|
Ответы с готовыми решениями:
5
Дробление текста на куски, куски в переменные Правильное соединение АЦП и ЦАП в Multisim 13 Обработка пакета |
|
|
|
| 25.08.2016, 19:55 | |
|
MrDead, это естественное поведение TCP пакетов, вы же их используете, верно? Вам нужно добавить каждому пакету символ конца. Приходящие пакеты хранить где-нибудь, и не парсить их до тех пор пока в очередном пакете не будет найден символ конца пакета.
Например (! - символ конца пакета): @#$@$#{тут json объект}!@#$@$#{тут json объект}!@#$@$#{тут json объект}! Вот таким образом вы легко сможете разделить ваши данные на сервере.
1
|
|
|
16 / 16 / 6
Регистрация: 04.03.2014
Сообщений: 160
|
|
| 25.08.2016, 20:15 [ТС] | |
|
Спасибо. В теории вроде идея годная, попробую реализовать такую схему.
0
|
|
|
15 / 15 / 2
Регистрация: 08.02.2013
Сообщений: 198
|
|
| 21.09.2016, 07:21 | |
|
0
|
|
|
16 / 16 / 6
Регистрация: 04.03.2014
Сообщений: 160
|
|
| 22.09.2016, 19:51 [ТС] | |
|
Всё верно. Нет гарантии, что длина пакета, это готовый массив, иначе бы не пришлось добавлять знак для распознания его целостности.
0
|
|
| 22.09.2016, 19:51 | |
|
Помогаю со студенческими работами здесь
6
Обработка бинарного пакета Правильное удаление дополнительного сервера Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
|
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|