Краткий ответ: используйте взамен TcpClient.Connect (String, Int);он принимает IPv4 / IPv6-адрес или имя хоста / псевдоним, поэтому вы не ограничены подключением по IP.Например:
Dim client As TcpClient
client.Connect( "localhost", 27488 )
client.Connect( "127.0.0.1", 27488 )
Но откуда взялась 25.240.1.0?Попробуйте следующее:
- Откройте Calc, переключитесь в режим программирования, выберите Dec
- Введите
127001
, затем переключитесь на Hex - Запишите результат,добавление нулей слева для заполнения до 4 байтов / 32 бита:
0001F019
- Разделите это число на отдельные байты:
00 01 F0 19
- Обратный порядок байтов:
19 F0 01 00
- Преобразовать каждый байт обратно в десятичный:
25 240 1 0
- С точками:
25.240.1.0
Зачем инвертировать байты?Ваша архитектура процессора имеет младший порядок;числа представляются в памяти с младшим байтом первым.Адреса IPv4 стандартизированы в формате с прямым порядком байтов (сначала старший байт; он же порядок сети).Конструктор IPAddress( Int64 )
обращает байты для преобразования из LE в BE.
В обратном порядке, описанном выше, правильное значение для обратной петли в конструкторе IPAddress( Int64 )
будет &H0100007F
(hex) или 16777343
(десятичный).
Конструктор IPAddress( Byte[4] )
принимает массив байтов в сетевом порядке, так что это будет New Byte() { 127, 0, 0, 1 }