2016-05-13 4 views
1

私は、Wi-Fiを介してあるデバイスから別のデバイスにファイルを共有したいと思っているAndroidアプリケーションを使用しています。私は約1.5メガバイト/秒の速度を得ています。はるかに高いデータレートでファイルを転送する方法はありますか? デバイスとルータが150Mbps(18.75MBps)以上のデータレートでも処理できるという理由で、このデータレートが低下している理由を教えてください。 UFTPを使用できますか?ここAndroid搭載端末間のWi-Fiファイル転送が高速ですか?

はコードです:

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

私は自分の書かれたコードを使用しています。これはwifi経由でファイルを転送するためのtcpです... byte [] buf = new byte [2048]; { 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

私は非常に多くのパケットサイズで試しましたが、16Mbps以上の平均データレートを持っていませんでした –

+0

これはアンドロイドデバイスにとって優れた速度です。 – jeorfevre

関連する問題