Мы пытаемся заставить две программы общаться друг с другом в игровой манере.Они поддерживают TCP-соединение с центральным сервером для получения информации типа «контроль», которую этот центральный сервер обеспечивает для обоих клиентов.Затем два клиента обмениваются данными с сервером udp, используя sendto () и recvfrom (), которые просто отправляют информацию, которую он получает, другому подключенному клиенту.
Теперь проблема в том, что если у вас есть домашний маршрутизатор илив частной сети, сервер udp sendto () для другого клиента будет отфильтрован брандмауэром, если только у вас не открыт порт, что намного больше, чем мы хотим, чтобы наши клиенты делали.
Но я неЯ не хочу терять преимущества UDP - меня не волнует потеря пакетов и порядок.Я готов управлять всем этим сам.
Итак, могу ли я надежно создать подключенный сокет UDP для чтения и записи?Я вспоминаю, как пытался сделать это в прошлом, и у меня было столько проблем, что я отказался и пошел к решению sendto () - recvfrom (), прежде чем понял, что я просто выпал из внешней сети.
Есть предложения, как с этим бороться?Любые лучшие практики или вещи, на которые я должен обратить особое внимание для подключенных UDP-сокетов?Это действительно возможно?
(я все это кодирую на чистом C).