Чтобы жизнь медом не казалась.
Отлаживаем настольное приложение: через ПЛК производства %bigcompanyname%, и их же высокоуровневый TCP-интерфейс на .net управляем роботом.
Робот - здоровая машина, если поедет не туда, мало не покажется. А координаты, куда ехать, посылаем как раз мы. Там, X, Y, Z, еще какие-то служебные параметры, и в конце этой последовательность - служебный флаг, типа, готово, двигай. И двигает. Но изредка не туда, хорошо хоть на тестовой скорости успевали останавливать.
Отлаживали недели 3, все перекопали, и чувствуем уже, вроде не у нас проблема, хотя так почти никогда и не бывает. Вызвали суппорт %bigcompanyname%. Оказалось, что "наш интерфейс не гарантирует последовательность доставки параметров" - "а почему?" - "оптимизация пакетов". На TCP. Вот так.
Посмотрел в послужной лист этой конторы, стало страшно жить. Там даже атомные электростанции есть.