В моем приложении я использую InetAddress.getByName() для преобразования строк типа 192.168.1.56 в объекты InetAddress - в основном потому, для хранения IP-адресов как IP-адресов, а не как строк. До сих пор, я бы поклялся, что это тоже неплохо, но сегодня я обнаружил ошибку. Это не работает:Случайная ошибка Использование InetAddress.getByName()
InetAddress ia = InetAddress.getByName ("192.168.1.056");
Казалось бы, что мой Android думает, что строка является именем хоста, и поэтому он пытается найти его (что не возможно, потому что это не на «реальные» сети). Это то, что я могу обойти - значит есть ли способ настаивать на getByName, что это IP-адрес, а не имя хоста? Или мне нужно построить метод для очистки ведущих нулей из строк IP-адресов? Или есть утилита Apache, где-то похоронили, что может улучшить работу?
Какая ошибка вы получаете? Кроме того, некоторые реализации будут обрабатывать ведущие нули как восьмеричные значения, которые не будут такими, какие вы хотите. Не уверен в этом. – FatalError
Проверьте этот вопрос и ответы: http://stackoverflow.com/questions/9556978/how-come-inetaddress-getbyname1-2-is-valid-ip-address –
Ошибка, которую я получаю, это NetworkOnMainThread - что ведет меня полагая, что программное обеспечение обрабатывает строку как имя хоста и выходит из сети, пытаясь ее разрешить, что невозможно и не может сделать. Извините за неполную почту. – Rich