gpt4 book ai didi

android - 更改 WiFi-Direct IP 范围?在 Android WiFi-Direct 中强制使用 IPv6?

转载 作者:太空宇宙 更新时间:2023-11-03 10:39:25 27 4
gpt4 key购买 nike

我有两部 Android KitKat 手机,都以组所有者身份运行 WiFi-Direct 组,我们称它们为 GO1 和 GO2

我设法将 GO1 作为旧版客户端连接到 GO2,而没有破坏任何(先前设置的)wifi-direct 组。

问题是,您可能知道,GO IP 地址在 Android 源代码中是硬编码的,并设置为 192.168.49.1

因此,我的两个设备 GO1 和 GO2 都具有相同的 IP 地址 (**)...每个都在他的本地网络上。

我的应用程序同时是客户端和服务器。但是两个网络都使用相同的 IP 范围 (192.168.49.XXX),显然,我无法更改。

因此,如果它们都托管 WiFi-Direct 组,我无法在它们之间创建 TCP 连接,因为任何设备在尝试连接到 192.168.49.1 时都会连接到自身

所以问题是:

  • 有没有办法更改 Wifi-Direct 中使用的 IP 范围?
  • 有没有办法在 Wifi-Direct 中使用 IPv6 而不是 IPv4?
  • 是否可以在不对手机进行 Root 的情况下完成这些操作?
  • 还有其他建议吗?

** :实际上,因为 GO1 作为传统客户端连接到 GO2,所以 GO1 被称为 192.168.49.227(例如)到 GO2,GO2 被称为 192.168.49.1 到 GO1。但是因为 GO1 也是一个 GO,它也被他的客户(和它自己)称为 192.168.49.1。

最佳答案

无需 root 手机即可解决此问题的方法是通过多播 UDP* 发送您的数据包。这些数据包将从 GO1 到达 GO2。

这有一些副作用:

  • 要将其用于网络,您必须在 OSI 应用程序级别执行封装和路由(效率不高)。

  • 您还需要根据 MA​​C 地址进行路由,因为每台设备都具有相同的 192.168.49.1 地址。

  • “请务必注意,多播套接字封装了一对多单播通信,因此无法充分利用总可用 WiFi 和 WiFi Direct 带宽”*

还有一点值得注意:

  • 随着 GO 数量的增加,您会遇到所有节点都在同一个 wifi 信道上运行的问题。这对于少数设备来说不是问题,但对于数百台设备来说,这将是一个巨大的问题。

*此方法在 Colin Funai、Cristiano Tapparello 和 Wendi Heinzelman 题为“通过 WiFi 直接多组网络支持多跳设备到设备网络”的论文中提到,可在此处找到:https://arxiv.org/pdf/1601.00028.pdf

关于android - 更改 WiFi-Direct IP 范围?在 Android WiFi-Direct 中强制使用 IPv6?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36867687/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com