2016-05-13 1 views
1

Я работаю с приложением android, в котором я хочу поделиться файлом с одного устройства на другое через Wi-Fi. Я получаю скорость около 1,5 мегабайт/с. Есть ли способ передать файл гораздо более высокой скоростью передачи данных? Можете ли вы рассказать, почему мы получаем эту менее скорость передачи данных, даже устройства и маршрутизатор способны обрабатывать скорость передачи данных более 150 Мбит/с (18,75 Мбит/с) ... Возможно ли использовать UFTP и будет ли это решение цели?скорость обмена файлами WiFi между устройствами Android?

вот код:

byte[] buf = new byte[2048]; 
try { 
    int bytesRead = 0; 
    while ((bytesRead = dis.read(buf, 0, buf.length)) != -1) { 
     fLength = fLength - bytesRead; 
     dos.write(buf, 0, bytesRead); 
     Log.i("File Tranfer Thread", String.valueOf(fLength) + Thread.currentThread().getName()); 
     } 
    } 
} 

Благодаря

+0

, какой протокол вы используете для трансферт файлов? Вы используете приложение или создаете приложение? – jeorfevre

+0

Я использую собственный письменный код, то есть tcp для передачи файла по Wi-Fi ... byte [] buf = новый байт [2048]; try { int bytesRead = 0; while ((bytesRead = dis.read (buf, 0, buf.length))! = -1) { fLength = fLength - bytesRead; dos.write (buf, 0, bytesRead); Log.i («File Tranfer Thread», String.valueOf (fLength) + Thread.currentThread(). GetName()); } –

ответ

0

Ваш код быстро.

Есть одна вещь, которую вы можете попробовать, которая стоит того, чтобы играть с размером пакета. Попробуйте изменить размер пакета, чтобы увидеть более быстрое решение. Иногда более крупный пакет быстрее отправляется.

  1. размер пакета больше byte[] buf = new byte[2048*10];
  2. пакет размером меньше byte[] buf = new byte[512];
  3. размер пакета 3 byte[] buf = new byte[2048*5];
+0

Я пробовал с таким большим количеством пакетов, но не получил скорость передачи данных более 16 Мбит/с –

+0

Это хорошая скорость для устройств Android, не думаю, что вы добьетесь большего успеха с одного устройства на другое – jeorfevre