1 - это безопасно, только используя сокет UDP для игрового процесса.Клиенты уже имеют исходный код и могут легко его изменить.Таким образом, они могут изменять данные, поступающие с клиента на сервер.Нужно ли реализовывать алгоритм, чтобы сделать его более защищенным от взлома или мошенничества?Кто-нибудь может изменить apk-файл и все испортить в этой игре?
Сам по себе UDP не дает вам никакой уверенности по умолчанию, поэтому если вы используете UDP и вам нужна некоторая надежность или гарантия получения данных, вы будетенеобходимо внедрить логику подтверждения в ваш протокол, что позволит избежать репликации пакетов.
Что касается безопасности, да, вам нужно будет реализовать логику квитирования, сжатия и криптографии и использовать алгоритмы контрольной суммы, чтобы гарантировать, что анализируемые данные не будут повреждены.Вам также нужно будет реализовать некоторую логику управления памятью на клиентах, чтобы коммуникация между клиентом и сервером не была легко сопоставима с помощью сброса памяти, чтобы избежать мошенничества при перезаписи памяти.
2- Могу ли я использовать порт (например, 8000) для соединения tcp и udp, где tcp принимает пользователя / игрока для установления совпадений и создает уникальный ключ от комнаты для отправленного клиента, когда сервер готов.После того, как клиент получит ключ, сервер решит, какой пользователь в какой комнате с этим ключом от комнаты или использует udp даже во время сватовства.Этот метод делает сервер медленным?
Вы можете использовать пользовательские порты, которые должны быть в диапазоне 1024-49151.
Большинство отличных сетевых механизмов для игр используют TCP и UDP вместе, а некоторыеметоды регулирования для обеспечения синхронизации между клиентом и сервером.Хорошим чтением для вас должен быть этот пост:
https://gafferongames.com/post/udp_vs_tcp/
Надеюсь, это поможет.