Отправка данных по сети p2p в Android

Я провожу эксперимент на Android и не могу отправлять данные с одного устройства на другое. Мне нужно было иметь сеть p2p, чтобы, если одно устройство получает данные, другие устройства могли получать данные с тех устройств, которые уже получили данные. Я также изучал и видел видеоролики о Wi-Fi, но они рассказывают только о сканировании Wi-Fi и запуске / остановке Wi-Fi.

Пожалуйста помоги


person bug killer    schedule 21.05.2015    source источник


Ответы (1)


Ниже у нас есть два класса Thread для отправки и получения файла...

public class FileRead extends Thread {
        Socket socket;
        String name;

        FileRead(Socket socket,String filename) {
            this.socket=socket;
        this.name=name;
    }

    @Override
    public void run() {
        File file=null;
        try {


            file = new File (filePath,name);

            ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
            byte[] bytes;
            FileOutputStream fos = null;
            try {
                bytes = (byte[])ois.readObject();

                fos = new FileOutputStream(file);
                fos.write(bytes);

            } catch (ClassNotFoundException e) {
                Log.i("INFO","class not found exception");

            }

        } catch (IOException e) {

            e.printStackTrace();
        }

    }
    }


public class FileSend extends Thread {
    Socket socket;
File file;
    FileSend(Socket socket,File f){
        this.socket= socket;
        file=f;
    }

    @Override
    public void run() {



        byte[] bytes = new byte[(int) file.length()];
        BufferedInputStream bis;
        try {
            bis = new BufferedInputStream(new FileInputStream(file));
            bis.read(bytes, 0, bytes.length);

            ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());
            oos.writeObject(bytes);
            oos.flush();

        } catch (FileNotFoundException e) {
            Log.i("INFO","  file not found exception");

        } catch (IOException e) {
            Log.i("INFO","  io exception exception");
        }
    }

Мы используем для отправки файла между двумя связанными сокетами на двух разных устройствах. запустите этот поток по коду ниже

File file = new File(FILEPATH+File.separator+FILENAME);
    FileSend fileSend = new FileSend(socket,file);
    fileSend.start();//write file

    FileRead fileRead =new FileRead(socket,RECIEVEDFILENAME);
    fileRead.start();//read file
person Ekant Sharma    schedule 21.05.2015
comment
Этот код вы должны использовать, если у вас есть знания о родном программировании сокетов в java... - person Ekant Sharma; 21.05.2015