TCP Socket im Async Task

  • Hi,
    ich bin gerade dabei eine Server-Client App zu schreiben.
    Bisher habe ich es so gelöst, dass der Server permanent im Accept hängt, der Client, wenn er was hat, zum Server connected, ihm was schickt und den Socket wieder schließt.
    Der Server blockiert im accept, sobald der Client connected, kommt der in.readLine() und socket.close();
    anschließend erstellt er einen neuen Socket auf den der Client connecten kann.
    Ds funktioniert soweit auch.
    Doch wenn ich jetzt was vom Server zum Client senden will, muss das entweder "abgesprochen" sein oder es geht halt nicht.
    Jedoch schaffe ich es nciht den Socket "offen" zu halten.
    Im Async-Task wird eine Verbindung aufgebaut, über

    Code
    in = new BufferedReader(new InputStreamReader(client.getInputStream()));
    		   out = new PrintWriter(client.getOutputStream(),true);


    kann ich dann senden oder empfangen.
    Wenn ich nun den Socket im Postexecute übergeben will, ist er nur lokal gültig, ich möchte aber global damit arbeiten.
    Wenn ich allerdings eine global deklarierte Variable verwende, muss sie final sein.
    Das ist auch alles logisch, aber wie zur Hölle bekomme ich nun diese "in" bzw "out" auch in anderen Threads benutzbar?


    Ich hoffe das klingt nicht alles zu wirr und jmd kann damit was anfangen :)
    Grüße

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!