Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Android NSD而不是IPv4地址升级IPv6地址_Android_Ipv6_Service Discovery_Nsd - Fatal编程技术网

使用Android NSD而不是IPv4地址升级IPv6地址

使用Android NSD而不是IPv4地址升级IPv6地址,android,ipv6,service-discovery,nsd,Android,Ipv6,Service Discovery,Nsd,我在我的应用程序中成功注册了一项服务,我可以使用命令行工具avahi browse在我的通用Linux设备上看到该服务。我想知道的是:为什么avahi browse显示的是我的Android的IPv4地址,而不是IPv6(本地链接)地址?两个部分都打印在屏幕上 如何使服务发现提升IPv6地址。请参阅下面我的代码片段: try { val serviceInfo = NsdServiceInfo().apply { // host = InetAddress.getByNa

我在我的应用程序中成功注册了一项服务,我可以使用命令行工具
avahi browse
在我的通用Linux设备上看到该服务。我想知道的是:为什么avahi browse显示的是我的Android的IPv4地址,而不是IPv6(本地链接)地址?两个部分都打印在屏幕上

如何使服务发现提升IPv6地址。请参阅下面我的代码片段:

try {
    val serviceInfo = NsdServiceInfo().apply {
        // host = InetAddress.getByName("fe80::1234/64") // TODO: This fails
        serviceName = TAG
        serviceType = mServiceType
        setPort(port)
    }
...

您需要包含带有链接本地IPv6地址的区域ID。好的。。。你能详细说明一下吗?我添加了区域ID,这就成功了。。。以某种方式“avahi browse”仍然显示这两个部分的IPv4地址。“avahi discover”显示“public”IPv6地址,而不是我添加到函数调用中的本地链路地址。。。整个行为对我来说似乎很奇怪。IPv6链路本地地址都在同一网络范围内,因此当您引用链路本地地址时,必须包含区域ID以区分哪个链路本地网络。请记住,主机可以有多个接口,每个IPv6接口都将在同一链路本地网络范围内有一个地址,但不同的链路本地网络。再次感谢。。我改变了这一点,但Android网络服务发现仍然传播“公共”IPv6地址,而不是传递给“getByName()”方法的链接本地地址。尽管它是正确的WiFi接口。