2011-01-15 20 views
1

Hallo Ich möchte eine feste Menge von Daten (sagen wir 5 MB) von Server zu Android Client über TCP mit der Programmiersprache Java senden. Die Daten spielen keine Rolle, sie werden beim Client gelöscht. Ich mache das nur, um Messungen am Telefon durchzuführen.Senden Sie 5MB Daten über einen Socket?

Kann jemand einen guten Weg empfehlen, dies zu erreichen? Wie kann ich den Server kontinuierlich eine große Menge an Daten senden lassen? Ohne das intermittierende Verhalten beim Lesen einer Zeile aus einer Datei, dann das Senden dieser Bytes ... dann Lesen einer anderen Zeile und Senden dieser.

Ideen? Prost.

+1

Ist der einzige Zweck, um die Datenübertragungsrate des Telefons zu messen? Wird etwas wie [Speed ​​Test] (http://www.appbrain.com/app/speedtest-net-speed-test/org.zwanoo.android.speedtest) funktionieren? – Seth

+0

Ich konzentriere mich eigentlich auf Energieeffizienz. Ich möchte sehen, wie viel von der Batterie benötigt wird, um die gesamte Übertragung zu empfangen, und dann sehen, ob ich die Übertragung manipulieren kann, um die Batterielebensdauer mit minimaler zusätzlicher Verzögerung zu verbessern. – Mike

Antwort

2

Sie müssen keine Datei senden, Sie können nur einen Datenblock senden.

// server which sends 5 MB on connection. 
ServerSocket ss = 
Socket s = ss.accept(); 
s.getOutputStream().write(new byte[5*1024*1024]); 
s.close(); 
+0

Vielen Dank Peter. – Mike

0

Sie könnten ein Byte-Array der Größe 1024 haben und eine Schleife, die es immer wieder aus dem Socket sendet. Die Daten müssen nicht eindeutig sein. Sie könnten ein größeres Array verwenden, wenn Sie der Meinung sind, dass eine KB nicht groß genug für Sie ist.

Klingt, als ob Sie nach dem Server dort gefragt haben. Haben Sie sich auch über den Kunden gewundert?

+0

Ich kämpfe gerade mit dem Kunden. Ich bin ziemlich neu in Android. – Mike