LINUX.ORG.RU

История изменений

Исправление 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 формат приведен просто для примера.