Я пишу приложение клиент/сервер и действительно не могу найти руководства, которые соответствуют моим потребностям. Выполнение этого самостоятельно приводит меня ко многим недостаткам дизайна, прежде чем я даже начал. Например, сервер должен обновлять каждый клиент по своему состоянию много раз каждую секунду. Я предположил, что не могу обновлять каждый клиент отдельно, но UDP-трансляции должны это исправить. Но мне по-прежнему нужен канал TCP, который надежно связывается с каждым клиентом для таких вещей, как: сообщения чата, ввод пользователя и т.д.
Изучая эту тему, кажется, что сервер может использовать оба протокола одновременно - но только возможно (нечувствительно). Никто не предлагает такой подход, на самом деле я собираюсь из этой статьи, что неплохо использовать оба.
Теперь я очень смущен тем, как я должен обрабатывать данные на своем сервере. Если я полностью не понял что-то о потере пакетов, я хочу гарантировать, что пользовательский ввод, приводящий к "сервер-запрос-пакеты", не будет потерян. Каждый ответ на SO о гарантии доставки с UDP говорит, что обязательно, используйте TCP. Что еще более расстраивает, так это то, что каждая серверная/клиентская программа, которую я могу себе представить, по крайней мере, требует, чтобы некоторые из ее сообщений были гарантированно доставлены (например, "отключить" сообщения?).
Должен ли я использовать UDP, TCP, оба или я просто думаю совершенно неправильно об этом?