Возможно, это не самый эффективный способ сделать это, но я использовал OrderedDictionary
(хотя SortedDictionary
, вероятно, более подходит) для обработки вопрос заказа в прошлом. Используйте порядковый номер в качестве ключа и пакетные данные в качестве значения.
К сожалению, я не могу ответить на ваш второй вопрос (без особых усилий). Единственное, что я хотел бы предложить, - это расширить ваш протокол, чтобы разрешить отзыв сообщения, которое может быть отправлено получателем отправителю, чтобы сказать им, чтобы он отправил пакет, потому что оригинал был отброшен. У меня есть такая логика (только гораздо более изощренная), хотя это собственность компании, поэтому я не могу ею поделиться. Надеюсь, этого будет достаточно, чтобы помочь вам.