通过两个手机之间的wifi热点共享数据?

时间:2016-11-10 20:06:18

标签: android

我试图通过wifi-hotspot分享数据我已经搜索过每一个地方但是找不到任何东西..所以有些人有任何想法所以请分享它.. 它应该通过wifi-hotspot而不是wifi-direct ..

//服务器代码

            try {
                ServerSocket ss = new ServerSocket(400);
                tt.setText("Running");
                while (true)
                {
                    Socket s = ss.accept();
                    FileInputStream fis = new FileInputStream("sdcard/DCIM/123.jpeg");
                    byte[] buffer = new byte[fis.available()];
                    fis.read(buffer);

                    ObjectOutputStream oos = new ObjectOutputStream(s.getOutputStream());
                    oos.writeObject(buffer);
                    oos.close();
                    s.close();
                }
            } catch (IOException e) {

                Toast.makeText(MainActivity.this,""+e,Toast.LENGTH_LONG).show();
            }

        }
    });
}

///客户端代码....

            try {
                Socket s = new Socket(txtip.getText().toString(),Integer.parseInt(txtport.toString()));
                ObjectInputStream oos = new ObjectInputStream(s.getInputStream());

                    byte[] buffer = (byte[]) oos.readObject();
                    FileOutputStream fos = new FileOutputStream("/storage/123.jpeg");
                    fos.write(buffer);

            } catch (IOException e) {
                Toast.makeText(MainActivity.this,""+e,Toast.LENGTH_LONG).show();
            } catch (ClassNotFoundException e) {

                Toast.makeText(MainActivity.this,""+e,Toast.LENGTH_LONG).show();
            }

        }
    });
}

1 个答案:

答案 0 :(得分:0)

我写了一些小巧糟糕的图书馆。您可以使用Java套接字。

在您的应用中有一台设备运行ServerSocket,此套接字可以侦听连接(如服务器)。您需要检查此ServerSocket正在收听的端口(谷歌关于它)。你还需要获得这个设备的IP地址,有几种方法:你可以从WifiManager(google it)获得它。

其他设备将使用Socket类连接到它。您可以以多种形式发送数据:纯字符串或如果您使用相同的应用程序,则可以序列化/反序列化对象。

阅读一些关于套接字的信息,但是在ServerSocket从其他设备获得连接后,您可以交换消息(只是继续在其他线程的某个循环中监听)。