Android 两个Wifi设备之间的数据传输

Android 两个Wifi设备之间的数据传输,android,android-wifi,Android,Android Wifi,我在谷歌上搜索过。在Android 2.2和sdk 8中,如何在Android的列表中使用SSID 通过使用SSID,应通过编程方式获得特定的启用wifi的设备属性。有了这些帮助,您可以在Android中的两个支持Wifi的设备之间传输数据。要在两个Android设备之间以有意义的方式发送数据,您需要使用TCP连接。要做到这一点,您需要ip地址和其他设备正在侦听的端口 例子摘自 对于服务器端(侦听端),您需要一个服务器套接字: try { Boolean end = false;

我在谷歌上搜索过。在Android 2.2和sdk 8中,如何在Android的列表中使用SSID


通过使用SSID,应通过编程方式获得特定的启用wifi的设备属性。有了这些帮助,您可以在Android中的两个支持Wifi的设备之间传输数据。

要在两个Android设备之间以有意义的方式发送数据,您需要使用TCP连接。要做到这一点,您需要ip地址和其他设备正在侦听的端口

例子摘自

对于服务器端(侦听端),您需要一个服务器套接字:

try {
        Boolean end = false;
        ServerSocket ss = new ServerSocket(12345);
        while(!end){
                //Server is waiting for client here, if needed
                Socket s = ss.accept();
                BufferedReader input = new BufferedReader(new InputStreamReader(s.getInputStream()));
                PrintWriter output = new PrintWriter(s.getOutputStream(),true); //Autoflush
                String st = input.readLine();
                Log.d("Tcp Example", "From client: "+st);
                output.println("Good bye and thanks for all the fish :)");
                s.close();
                if ( STOPPING conditions){ end = true; }
        }
ss.close();


} catch (UnknownHostException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
} catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
}
对于客户端,您需要一个连接到服务器套接字的套接字。请将“localhost”替换为远程Android设备ip地址或主机名:

try {
        Socket s = new Socket("localhost",12345);

        //outgoing stream redirect to socket
        OutputStream out = s.getOutputStream();

        PrintWriter output = new PrintWriter(out);
        output.println("Hello Android!");
        BufferedReader input = new BufferedReader(new InputStreamReader(s.getInputStream()));

        //read line(s)
        String st = input.readLine();
        //. . .
        //Close connection
        s.close();


} catch (UnknownHostException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
} catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
}

对于两台设备之间通过wifi进行的数据传输,可以使用“TCP”协议。客户端和服务器之间的连接需要3件事

  • 使用NSD管理器,客户端设备应获得服务器/主机IP地址
  • 使用套接字将数据发送到服务器
  • 客户端应将其IP地址发送到服务器/主机以进行双向通信
  • 为了通过wifi更快地传输数据,可以使用“WifiDirect” 这是一个“p2p”连接。这样就可以将数据从一个设备传输到另一个设备,而无需中间设备(套接字)。例如,请参阅google开发者和中的此链接

    在Github中捕获一个示例