android - 如何知道网络上的设备在未连接到网络的情况下正在提供服务

标签 android ios networking network-programming connection

我想知道设备上的应用程序如何知道相邻网络中有提供特定服务的设备甚至没有连接到网络。 我将以名为 Xender 的移动应用为例。当您启动此应用程序并单击“创建组”时,它会创建一个热点,并将默认设备热点名称作为网络的 SSID,当另一台设备启动该应用程序并单击“加入组”时",该设备能够通过感知周围的网络来查看周围的可用设备。第二个设备能够接收第一个设备的名称,甚至无需连接到第一个设备创建的网络。 这怎么可能?尤其是在安卓中。

最佳答案

Xender 只是对 SSID 进行编码,如果您设置名称“xx”,那么 SSID 将是 ADYXeHg 或 ADYYeHg 或其他名称,但 ADY_eHg 字母在不同设备中以相同的名称“xx”保持不变,因此我们必须解码该方法Xender.

我猜他们使用密码加密将配置文件名称转换为 SSID。

这就是 xender 代码在加密(热点端)时的样子。

代码:这不是 xender 的代码,它是我编写的。

public String Encry(String sc) {
    int i;
    String data = sc;
    StringBuffer pas = new StringBuffer(data);
    for (i = 0; i < pas.length(); i++) {

        int temp = 0;
        temp = (int) pas.charAt(i);
        temp = temp - 10;
        pas.setCharAt(i, (char) temp);
    }
    String data1 = "robo" + pas;
    String[] one = data1.split("robo");
    String s = Arrays.toString(one);
    s = s.substring(1, s.length()-1).replaceAll(",", "");
    StringBuffer tu = new StringBuffer(s);

    for (i = 0; i < tu.length(); i++) {
        int da = 0;
        da = (int) tu.charAt(i);
        da = da + 10;
        tu.setCharAt(i, (char) da);
    }
    System.out.println("\n");
    String star = tu.toString();
    star = star.substring(1, star.length() - 1).replaceAll(",", ""); // remove " * " from String.
    return data1;
}

这就是解密的工作原理(加入网络端): 注意:这不是 xender 的代码,它是由我编写的。

public String Dicry(String SSID) {

    int i;
    String data1 = SSID;
    String[] one = data1.split("robo");
    String s = Arrays.toString(one);
    s = s.substring(1, s.length()).replaceAll(",", "");
    StringBuffer tu = new StringBuffer(s);
    for (i = 0; i < tu.length(); i++) {
        int da = 0;
        da = (int) tu.charAt(i);
        da = da + 10;
        tu.setCharAt(i, (char) da);
    }
    String star = tu.toString();
    star = star.substring(1, star.length()).replaceAll(",", ""); // remove " * " from String.
    return star;
 } // scanner

注意:这段代码是我编的。它不是 xender 的原始代码。请记住这一点。

这就是密码加密的工作原理。

关于android - 如何知道网络上的设备在未连接到网络的情况下正在提供服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31887635/

相关文章:

安卓改造 : content type as application/x-www-form-urlencoded

java - 点击 Android/Java ListView 项时如何禁用点击声音?

Android Wear - 如何为 WearableListView 设置分隔空间

android - 在 Android 中使用 Lazy Loader 时 GalleryView 中的图像质量损失

ios - 警报不会按预期弹出

ios - 如何创建删除空值的 Collection 扩展?

c - 从设备接收数据包未按预期工作

ios - 使用 SDK 的 Linkedin iOS 登录集成问题

networking - 在网络上阻止 Youtube,但仍访问特定视频

azure - 通过另一个 Azure 虚拟网络直接连接到 Azure 虚拟网络中的资源