Ваш код не выполняется при попытке отправить самое длинное сообщение.
Поэтому я предполагаю, что цель сообщения не читается достаточно быстро.
Я думаю, что ваша концепция попытки 5 раз ошибочна, потому что вы глотаете свое сообщение, если оно не было отправлено - и вы даже не обрабатываете эту серьезную ошибку.
Лично я рекомендую либо ждать вечно, чтобы отправить ваше сообщение, либо создать локальный буфер нормального размера, с которым вы работаете - и если этот буфер заполнен, то вы ждете вечно.
Я также рекомендую не есть все исключения, не заботясь о них. Вы молча скрываете серьезные ошибки.
В качестве примечания:
Люди часто думают, что в std :: string есть ошибки, или в ОС есть ошибки, или даже в том, что в компиляторе есть ошибки.
Позвольте мне заверить вас, что эти люди так часто ошибаются в своих обвинениях, что даже самый защитный пессимист скажет, что они всегда неправы.
И те, кто прав, могут доказать это в тривиальных программах.
Пожалуйста, извините за мое высокомерие.