Протокол стандартный.
Обьясню вам ситуацию: я пишу СОМ объект, который будет общаться по ТСР протоколу с устройством. Устройство является сервером. На каждый мой запрос устройство должно мне дать ответ. Получается что я отправляю данные функцией Send, получаю в ответ количество отправленных данных (точнее отчёт о том, что данные положены в буффер), и тут-же выполняю функцию recv с заданным периодом ожидания ответа (который, в силу некоторых причин очень большой, до 10 минут).
Здесь есть 3 варианта:
1. Данные нормально дошли до адресата, я получил ответ, и все рады

2. Устройство получило пакет, но не дало в заданный таймаут ответ. В данном случае я так и сообщаю вышестоящей логике, и тоже все рады

2. Устройство не получило посылку, и я 10 минут буду просто так отсижываться, ожидая неизвестно чеого..
Вот по этому я и хочу сразу после отправки данных устройству-серверу уточнить, дошли ли они или нет...