Как инициализировать сокет, используя локальный адрес IPv6-ссылки для отправки на принтер команды печати android studio? - PullRequest
0 голосов
/ 04 февраля 2020

Я работаю в студии android с Java, я подключаю принтер с адресами Ipv4 и Ipv6. Я успешно инициализировал сокет с Ipv4 с портом no для отправки команды печати на принтер. Но я не могу использовать локальный адрес ссылки Ipv6 (fe80 :: 9a4b: e1ff: fe37: 74c6) для инициализации сокета и печати команды печати. Когда я использую stati c ip принтера 192.168.xxx.xxx, принтер, на котором работает ipv6, печатает документ, но с адресом fe80 :: 9a4b: e1ff: fe37: 74c6, он не печатает документ. Кто-нибудь может направить меня, как я могу инициализировать сокет, используя адрес IPv6? Есть ли механизм, с помощью которого я могу взять адрес IPv4, используя адрес IPv6? Я нашел эту библиотеку https://seancfoley.github.io/IPAddress/ для выполнения sh моей работы, но я все еще не могу отправить команду печати, используя приведенный ниже пример кода.

                                IPv6Address addr6 = new IPv6Address(str.getAddress().getBytes()); //bytes is byte[16]
                                IPv4Address derivedIpv4Address = addr6.getEmbeddedIPv4Address();
                                IpAddress = derivedIpv4Address.toInetAddress().getHostAddress();
                                portNo = port;
...