Изучение технологий Java-сервера, попытка уточнить некоторые вещи.
Существует несколько технологий, которые позволяют Java-приложениям взаимодействовать друг с другом.
1) Веб-сервисы (REST / SOAP) через http
2) Простой POST / GET с использованием URLConnection через http.
3) Розетки
4) RMI = Сокеты + Сериализация объектов + Некоторые утилиты
5) Различные медиа-серверы, такие как red5 = rtmp или rtmpt
Все эти технологии предполагают наличие серверного приложения и клиентского приложения. Клиентское приложение знает адрес сервера и должно быть инициатором звонка. И, насколько я понимаю, в настоящее время сервер может передавать данные клиенту, он может отправлять данные только в ответ клиенту. И возможно, если только они меняют свои роли, в этом случае сервер должен знать IP-адрес клиента.
Так мне интересно, как работают сетевые игры? Возможно ли открывать соединение и обмениваться данными между сервером и клиентом за все время без запроса клиента каждые 1-2 секунды, и сервер не будет знать IP-адрес клиента. Я не говорю о комете и других взломах.
Спасибо