Попытка использовать IPv6 для соединения двух компьютеров. (Ra kNet и C ++) - PullRequest
0 голосов
/ 27 марта 2020

Поэтому у меня возникли некоторые проблемы при попытке подключения двух компьютеров с использованием адресов IPv6. У меня есть приложение, в котором два пользователя могут подключаться и отправлять пакеты друг другу, используя адреса IPv4 (один и тот же Wi-Fi). Однако из-за коронавируса нас заставили работать по всем штатам. Из-за этого я пытался перейти на использование IPv6. Теперь, согласно документации Ra kNet , это должно быть довольно просто. TLDR - вы устанавливаете семейство сокетов на использование IPv6 и изменяете Marco в заголовочном файле Ra kNet.

Источник. cpp

    RakNet::SocketDescriptor sd(masterServerPort, "");
    sd.socketFamily = AF_INET6;
    RakNet::StartupResult result =  peer->Startup(MAX_CLIENTS, &sd, 1);
    peer->SetMaximumIncomingConnections(MAX_CLIENTS);


    //std::cout << "The master server has started!\n ";
    std::cout << "Result: " << result << "\n";
    std::cout << "Server IP: " << peer->GetLocalIP(0) << "\n";

RakNetDefines.h

#ifndef RAKNET_SUPPORT_IPV6
#define RAKNET_SUPPORT_IPV6 1
#endif

Когда я запускаю эту программу, результат запуска выходит на SOCKET_FAMILY_NOT_SUPPORTED, и никто не может подключиться. Это происходит при запуске хост-машины, что означает, что у меня нет хоста для подключения. Кто-нибудь еще сталкивался с этой проблемой? Я использую Windows 10, который, по моему мнению, поддерживает IPv6 по умолчанию. Может ли это быть проблемой брандмауэра? На мой взгляд, этого не может быть, поскольку я один запускаю сервер, но это не в моей компетенции. Я как бы врезался в кирпичную стену, поэтому любая помощь была бы отличной.

Другое решение, которое у меня есть, - использование сквозного доступа через NAT, но для этого потребуется внешний сервер, который стоит денег (при очень низком бюджете). Я бы хотел как можно больше избегать использования внешних сервисов.

Заранее спасибо!

  • Пустоты

Редактировать: я делаю это приложение на C ++, но использую API Ra kNet, чтобы помочь с пакеты. Я считаю, что это проблема Ra kNet в моем коде, но я открыт для предложений.

Редактировать: Я даже не могу правильно запустить хост, поэтому пакеты между компьютерами пока не отправляются.

...