Да. Вы принципиально используете TCP "не так".mcrandy писал(а):Открою секрет :) Эта программа основана на функциях _send(), ucnet_send(), _recv(), ucnet_recv(), которые являются базовыми для передачи трафика между машинами в создаваемой системе. Объем трафика там небольшой, не будет таких больших сообщений, которые я пытаюсь передавать.Ох! Боюсь я таких "своих" программ-тестеров!
Честно говоря я не понимаю... Разве я не так использую TCP?Потому как по TCP нельзя передавать сообщения, да ещё и "заданной длины"(с) - TCP это stream, поток, "труба", в один конц которой можно "вливать", а из другой - "вытекает"...
В TCP нет, и вообще быть не может, никаких "сообщений".
А если это "являются базовыми для передачи трафика между машинами в создаваемой системе"(с) - то это значит, что вы закладываете в свою систему то, от чего ей ... прийдёт гоплык
И проявляться это будет, скорее, именно на коротких передаваемых сообщениях, чем на больших.
Но это предмет отдельного разговора ... для отдельной темы, да и не здесь, а где-то в Сети (там, кстати, есть темы, затрагивающие в примерах эти ваши вопросы).
Смотрите протокол SCTP (вместо TCP и UDP) - я ссылку выше показывал.mcrandy писал(а): Я должен быть уверен что сообщение доставлено, а UDP не подтверждает доставку...
Программа же не пытается отправить все громоздкое сообщение целиком, а отправляет его по частям.