1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Delayed Ack - FTP Performance Problem

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Rotesmofa, 18.10.2010.

  1. Rotesmofa, 18.10.2010 #1
    Rotesmofa

    Rotesmofa Threadstarter Fortgeschrittenes Mitglied

    Beiträge:
    279
    Erhaltene Danke:
    20
    Registriert seit:
    08.08.2010
    Hallo Jungs,

    ich kämpfe gerade mit einem Performance Problem.
    Mein in meiner App aufgerufener FTP Client hat eine max Datentransferrate von 7kbyte/s.
    Das ganze ist wahrscheinlich auf ein aktiviertes "delayed Ack" Ack steht für Acknowledge. Dieses ist z.B. auch bei Windows ein Problem.

    Weiss jemand wie man dies deaktiviert und Android?

    Gruß
    Rotesmofa
     
  2. Rotesmofa, 19.10.2010 #2
    Rotesmofa

    Rotesmofa Threadstarter Fortgeschrittenes Mitglied

    Beiträge:
    279
    Erhaltene Danke:
    20
    Registriert seit:
    08.08.2010
    Zuletzt bearbeitet: 19.10.2010
  3. Iblis, 19.10.2010 #3
    Iblis

    Iblis Android-Hilfe.de Mitglied

    Beiträge:
    53
    Erhaltene Danke:
    5
    Registriert seit:
    29.07.2009
    Öh, wo ist das Problem, auf der Seite steht doch schon alles ?

    Code:
    SocketImpl s;
    ...
    s.setOptions(SocketImpl.TCP_NODELAY, true);
    
     
  4. Rotesmofa, 19.10.2010 #4
    Rotesmofa

    Rotesmofa Threadstarter Fortgeschrittenes Mitglied

    Beiträge:
    279
    Erhaltene Danke:
    20
    Registriert seit:
    08.08.2010
    Werde es morgen testen(bei mir ist es schon später Abend).

    Wenn das klappt hast nen Bier bei mir gut!

    Gruß
    Rotesmofa
     
  5. Rotesmofa, 21.10.2010 #5
    Rotesmofa

    Rotesmofa Threadstarter Fortgeschrittenes Mitglied

    Beiträge:
    279
    Erhaltene Danke:
    20
    Registriert seit:
    08.08.2010

    habe das getestet, ich möchte AndFTP als Intent starten und das eben mit dieser Socketkonfiguration.
    Also habe ich vor dem intent für AndFTP diese Zeilen geschrieben.

    Aber Eclipse lässt das kompilieren nicht zu an der Stelle "s." steigt es aus.
    Das ist doch nur die Ableitung aus der Klasse "s." oder liege ich da falsch?

    Gruß
    Rotesmofa
     
  6. Iblis, 21.10.2010 #6
    Iblis

    Iblis Android-Hilfe.de Mitglied

    Beiträge:
    53
    Erhaltene Danke:
    5
    Registriert seit:
    29.07.2009
    Zuerstmal ist "Eclipse steigt aus" kein aussagekräftiger Fehlerbericht ;)

    Ich vermute einfach mal der Compiler beschwert sich, dass dein SocketImpl Objekt nicht initialisiert wurde.
    Wie kommst du auf Ableitung? Ich glaube du solltest dir die "Programmier-Basics" nochmal anschauen, sowas ist wichtig ;)

    Ich hab mir die SocketImpl Klasse mal genauer angeschaut und festgestellt, dass es nicht das ist was du suchst. SocketImpl implementiert zwar das SocketOptions Interface, welches die gewünschte Methode anbietet, ist selbst aber abstract. Versuchs stattdessen mal hiermit:

    Code:
            Socket mySocket = new Socket();
            try {
                mySocket.setTcpNoDelay(true);
            } catch (SocketException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    ... ich hab keine Ahnung von dem Netzwerkkram, ich hoffe einfach mal du weißt was man mit dem Socket Objekt anstellen muss, bevor die setTcpNoDelay Methode was bringt ;)

    Gruß
     
  7. Rotesmofa, 22.10.2010 #7
    Rotesmofa

    Rotesmofa Threadstarter Fortgeschrittenes Mitglied

    Beiträge:
    279
    Erhaltene Danke:
    20
    Registriert seit:
    08.08.2010
    Hallo Iblis,

    auf Ableitung kam ich durch das "s." was ich meinte war das aus dem Namespace von "s." die Methode die danach steht aufgerufen werden soll.

    und ja du hast recht, ich kämpfe noch mit den Grundlagen. :sad:

    Vielen Dank das du dich eingelesen hast!
    Ich bin mal weiterkämpfen mal schaun ob man den FTP Zugriff zu mehr Performance verhelfen kann!

    Gruß
    Rotesmofa
     

Diese Seite empfehlen