История изменений
Исправление Vic, (текущая версия) :
На передающей стороне каждый элемент последовательности поместить как данные, внутрь контейнера известной структуры со своим номером. Кроме номера каждого контейнера, нужен номер серии, чтобы понять, что контейнеры относятся к одной серии. На приемной стороне, собирать серии из контейнеров.
Например, берем текстовый контейнер в формате JSON и будем передавать его по UDP/IP, причем каждый контейнер от символа {
до символа }
в своем UDP пакете. На приемной стороне UDP пакеты могут прийти в любой последовательности.
Обозначим:
- «sn» - номер серии.
- «n» - номер контейнера в серии. Если нужно, то отрицательное число может обозначать, что это финальный контейнер в серии, чтобы можно было передавать серии из разного количества контейнеров.
- «e» - значение элемента.
Пусть начальный номер серии = 1, размещаем ABCDEF
в контейнеры и отправляем:
{ "sn":"1", "n":"0", "e":"A" }
{ "sn":"1", "n":"1", "e":"B" }
{ "sn":"1", "n":"2", "e":"C" }
...
{ "sn":"1", "n":"-5", "e":"F" }
На приемной стороне не составит труда собрать из набора контейнеров всю серию, даже с контролем, что что-то не пришло:
{ "sn":"1", "n":"1", "e":"B" }
{ "sn":"1", "n":"2", "e":"C" }
{ "sn":"1", "n":"-5", "e":"F" }
...
{ "sn":"1", "n":"0", "e":"A" }
Формат контейнеров выбирается в зависимости от способа передачи, а JSON формат приведен просто для примера.
Исходная версия Vic, :
На передающей стороне каждый элемент последовательности поместить как данные, внутрь контейнера известной структуры со своим номером. Кроме номера каждого контейнера, нужен номер серии, чтобы понять, что контейнеры относятся к одной серии. На приемной стороне, собирать серии из контейнеров.
Например, берем текстовый контейнер в формате JSON и будем передавать его по UDP/IP, причем каждый контейнер от символа {
до символа }
в своем UDP пакете. На приемной стороне UDP пакеты могут прийти в любой последовательности.
Обозначим:
- «sn» - номер серии.
- «n» - номер контейнера в серии. Если нужно, то отрицательно число может обозначать, что это финальный контейнер в серии, чтобы можно было передавать серии из разного количества контейнеров.
- «e» - значение элемента.
Пусть начальный номер серии = 1, размещаем ABCDEF
в контейнеры и отправляем:
{ "sn":"1", "n":"0", "e":"A" }
{ "sn":"1", "n":"1", "e":"B" }
{ "sn":"1", "n":"2", "e":"C" }
...
{ "sn":"1", "n":"-5", "e":"F" }
На приемной стороне не составит труда собрать из набора контейнеров всю серию, даже с контролем, что что-то не пришло:
{ "sn":"1", "n":"1", "e":"B" }
{ "sn":"1", "n":"2", "e":"C" }
{ "sn":"1", "n":"-5", "e":"F" }
...
{ "sn":"1", "n":"0", "e":"A" }
Формат контейнеров выбирается в зависимости от способа передачи, а JSON формат приведен просто для примера.