Практически во всех играх требуются быстродействующие свойства (и в меньшей степени свойства без установления соединения) UDP и надежность TCP. Они создают собственный надежный протокол поверх UDP. Это дает им возможность просто пересылать пакеты туда и сюда, а также делать их надежными.
Надежная система пакетной передачи, как правило, представляет собой простую систему с повторной попыткой до подтверждения, более простую, чем TCP, но существуют протоколы, которые выходят далеко за рамки возможностей TCP.
Ваша ситуация звучит очень просто. Вы, вероятно, сможете сделать самое чистое решение самостоятельно - просто сделайте так, чтобы каждый клиент отправлял ответ «Я слышал вас», и сервер продолжал пытаться, пока не получит его (или не сдастся).
Если вы хотите чего-то большего, большинство пользовательских библиотек протоколов находятся на C ++, поэтому я не уверен, насколько они будут вам полезны. Тем не менее, мои знания здесь уже несколько лет - возможно, некоторые протоколы уже перенесены. Хм ... RakNet и enet - две библиотеки C / C ++, которые приходят на ум.