Для моего приложения .NET C # у нас есть модули, которые должны взаимодействовать через протокол TCP / IP.
Я решил использовать Microsoft System.Net.Sockets API
Модуликоторые представлены классом "TcpListener" могут быть либо
-IPv4-адрес на основе -IPv6-адрес
Проблема заключается в том, что модули, использующие класс "TcpClient", должны создавать экземпляры«TcpClient» таким образом, что разумно взять IPv4 или IPv6-адрес (который изначально передается в виде строки)
Для уточнения, модуль, использующий класс «TcpClient», может иметь конструктор, подобныйследующее:
public ClientModule(string ipV4OrIpV6Address, int portNumber){
………………………
…………..
……….
}
При просмотре документации Microsoft (https://docs.microsoft.com/en-us/dotnet/api/system.net.sockets.tcpclient.-ctor?view=netframework-4.8#System_Net_Sockets_TcpClient__ctor_System_Net_IPEndPoint_) я обнаружил следующий конструктор TcpClient:
TcpClient (IPEndPoint)
Инициализирует новый экземпляр класса TcpClient и связывает его с указанной локальной конечной точкой.
Кроме того, я попытался найти больше информации о создании экземпляраКласс IPEndPoint, и я натолкнулся (https://docs.microsoft.com/en-us/dotnet/api/system.net.ipendpoint.-ctor?view=netframework-4.8#System_Net_IPEndPoint__ctor_System_Net_IPAddress_System_Int32_)
Каждый из модулей будет на разных серверах физических компьютеров.
Как мне создать экземпляр объекта Microsoft IPAddress втаким образом, что он будет достаточно умен для обработки адресов IPv4 и IPv6 как строк независимо от того, какой из них передается в качестве аргумента?