【问题标题】:I can't get datagramSocket receive from IPv6我无法从 IPv6 接收 datagramSocket
【发布时间】:2014-09-27 03:11:15
【问题描述】:

我正在尝试使用数据报套接字,所以我们使用了以下代码:

  ds = new DatagramSocket(null);
  ds.setReuseAddress(true);
  ds.setSoTimeout(10000);
  ds.bind(new InetSocketAddress(UDP_PORT));
  DatagramPacket rp = new DatagramPacket(testPack, testPack.length, InetAddress.getByName("IPAddress"),UDP_PORT);
  ds.send(rp);

  while(true)
   {
     ds.receive(receivedPacket);
   }

当“IPAddress”属于 IPv4 时,我可以收到数据包,但不能在 IPv6 上工作!

我确定 IPv6 上的“IPAddress”是正确的 ip,因为我可以 ping 它!

这段代码有什么问题吗?

【问题讨论】:

  • 您的 Android 设备是否支持 IPv6?
  • 我可以在设置->Wi-Fi->高级中找到IPv6地址!意思是支持IPv6吗?
  • IPv6的源代码是真的!问题是我的硬件错误!

标签: android sockets udp ipv6


【解决方案1】:

我想我知道原因。 您的程序使用的 ipv6 地址可能是错误的。 你可以试试:
ds.bind(new InetSocketAddress(ipv6InetAddress,UDP_PORT));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多