объясните, пожалуйста, как создать соединение с использованием внешних адресов

SFML и C++ Уроки \ Разработка игр Форумы SFML Network объясните, пожалуйста, как создать соединение с использованием внешних адресов

В этой теме 1 ответ, 2 участника, последнее обновление  KindRedSand 8 мес., 2 нед. назад.

Просмотр 2 сообщений - с 1 по 2 (из 2 всего)
  • Автор
    Сообщения
  • #4962

    pupsiquell
    Участник
    Сообщений:0

    Зарегистрирован:
    31.01.2018

    Репутация:0

    Здравствуйте, может кто-нибудь объяснить механизм связи компьютеров с помощью внешних ip-адресов, чтобы в игру можно было играть, сидя в разных сетях, а не только по локальной сети. Использую tcp-сокет: когда пытаюсь подключиться к сети с помощью внутреннего адреса-проблем нет(192.168…), а когда пытаюсь подключиться с помощью внешнего адреса, программа какое-то время пытается подключиться, потом выдает статус “==Socket::None”. Буду очень признателен, если поможете или хотя бы объясните принцип связи(желательно конечно на живом примере). Заранее спасибо!

    #4965

    KindRedSand
    Участник
    Сообщений:82

    Зарегистрирован:
    05.04.2017

    Репутация:30

    А вам знакомо определение Port Forwarding? У хоста должно быть правильное перенаправление портов, отсутсвие строгого NAT и в принципе открытый целевой порт. В первую очередь вам нужно проеврить это. Проверить доступность можно через сервис 2ip.
    Моё объяснение будет всё же неправильным, но для понимания картины думаю сойдёт.
    При TCP подключении устанавливается Point to Point соединение, в котором происходит вещание между 2 клиентами. Один ожидает подключение – второй производит дозвон. Когда оба устройства находят друг друга они начинаю с определённой переодичностью посылать между собой Ping Pong запроы(Жив ли собеседник или нет). При каждой отправке данных от одного клиента ко второму посылается последовательность байтов в синхронном режиме (Т.е. чтение 0 и 1 с определённой переодичностью о которых устройства скажем так договариваются сами.) и по окончании передачи части байтов клиент вещающий переходит в режим чтения ожидая ответа от того кто принимал. Если ответ положительный -> идёт следующая порция байтов, если ошибка -> последовательность передаётся заного.

Просмотр 2 сообщений - с 1 по 2 (из 2 всего)

Для ответа в этой теме необходимо авторизоваться.