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

Auf TCP Verbindung hören?

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Kelthur, 17.10.2011.

  1. Kelthur, 17.10.2011 #1
    Kelthur

    Kelthur Threadstarter Neuer Benutzer

    Beiträge:
    22
    Erhaltene Danke:
    1
    Registriert seit:
    09.03.2011
    Hallo,

    ich möchte in meiner App eine Funktionalität einbauen welche auf eine TCP Verbindung "hört", d.h. wenn ich über TCP etwas empfange soll eine Methode gestartet werden (das Androidgerät ist mit einem Servergerät verbunden welches mir etwas schickt), ich habe nach einem Broadcast gesucht, der auf eingehende TCP Verbindungen lauscht (wäre auch etwas sinnfrei glaub ich), aber nicht fündig geworden. Habt ihr vieleicht einen Tipp wie sich das einrichten lässt?
     
  2. DieGoldeneMitte, 17.10.2011 #2
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    Beiträge:
    1,230
    Erhaltene Danke:
    256
    Registriert seit:
    05.02.2010
    Phone:
    Nexus 5X
    Tablet:
    Nexus 7 (2013)
    Eigentlich ganz einfach: Du kannst wie in einem normalen Java(Desktop) Programm auch einen java.net.ServerSocket öffnen (Kannst ein ganz normales Java Tutorial dafür nutzen).

    Das ganze müsstest du natürlich in einem Android Service machen, wenn das Programm nicht im Vordergrund bleiben soll. Wenn du bei der Verbindung zu dem Socket etwas sichtbares tun willst, müsstest du von deinem Service aus einen intent zum Start einer normalen App losfeuern (das kann dann aber mit dem Service Teil der selben App sein).
     
  3. Kelthur, 17.10.2011 #3
    Kelthur

    Kelthur Threadstarter Neuer Benutzer

    Beiträge:
    22
    Erhaltene Danke:
    1
    Registriert seit:
    09.03.2011
    Ich glaub ich habe mich da etwas falsch ausgedrückt, ich habe bereits ein Socket ein in- und ein outputstream, zu den Servergerät. Das Servergerät schickt mir jede Sekunde mehrere 3 Byte Sequenzen, ich möchte nun die diese Sequenzen auswerten und auf meinen Bildschirm in Echtzeit bringen. Sozusagen dass ich jede Sekunde den alten Wert aktualisiere.

    *edit* das Programm soll im Vordergrund bleiben. Welchen Service meinst du jetzt in diesen Fall?
     
    Zuletzt bearbeitet: 17.10.2011
  4. ko5tik, 17.10.2011 #4
    ko5tik

    ko5tik Android-Experte

    Beiträge:
    620
    Erhaltene Danke:
    40
    Registriert seit:
    14.10.2009
    Phone:
    HTC Hero
    Auch wenn es im Vordergrundbleiben soll, sollte die Socket-Communikation ( insbesondere warten auf Daten) in eine separaten Thread stattfinden. Und wenn deine
    Aktivität aus dem Vordergrund fliegt, sollte dies Thread gestoppt und Socket fraigegeben werden.

    Vielleicht doch lieber service?
     
  5. DieGoldeneMitte, 17.10.2011 #5
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    Beiträge:
    1,230
    Erhaltene Danke:
    256
    Registriert seit:
    05.02.2010
    Phone:
    Nexus 5X
    Tablet:
    Nexus 7 (2013)
    "Android Service" werden Androidprozesse genannt, die im Hintergrund weiter aktiv bleiben können und a priori keine eigene UI haben.

    Das mit dem Servergerät sollte eigentlich kein Problem sein. Wie gesagt, du kannst einen ServerSocket öffnen und eingehene TCP Pakete nach belieben empfangen verarbeiten.

    Du hast aber den Begriff "Broadcast" in den Raum geworfen. Sowas gibt es bei TCP nicht (und um Sekundenweise ein paar bytes zu verschicken klingt TCP nicht nach der richtigen lösung). Dafür gibt es andere IP Protokolle wie UDP (die in Java mit DatagramSockets realisiert werden) oder iCMP (da muss ich zur Java Integration passen :))
     

Diese Seite empfehlen