Android TCP Client bliebt bei ReadLine und Read Stecken trotz "\r\n"

  • Antworten:6
  • OffenNicht stickyNicht beantwortet
  • Forum-Beiträge: 4

30.06.2016, 17:46:07 via Website

Hallo,

ich verbinde mich mit einem Server. Der Server Sendet nach der Verbindung immer wieder einen String.
Er wird mit \r\n bzw \n abgeschlossen. Jedoch empfängt mein Adroidprgoramm gar nichts.
Weder mit readLine noch mit read.

    new Thread(new Runnable() {
@Override
public void run() {
    state = false;

    try {

        Log.v("[SOCKET]","Connecting" + msgGet);
        client = new Socket(HOSTNAME,SERVERPORT);
        Log.v("[SOCKET]","Bufferreader" + msgGet);
        tcpGet = new BufferedReader(new InputStreamReader(client.getInputStream()));
        Log.v("[SOCKET]","WAITING FOR LINE" + msgGet);

        buffer[] data = new buffer[32];
        // tcpGet.read(buffer);
        msgGet = tcpGet.readLine();
        tcpGet.close();
        Log.v("[SOCKET]","GET: " + msgGet);


        state = true;


    } catch (IOException e) {
        state = false;
        e.printStackTrace();
    }
    try {
        Thread.sleep(250);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
}

}).start();

Was kann das nur sein?
Ich hab mittlerweile schon echt viel rumprobiert.
Habe es auch mal in einer dauer Whileschleife gehabt.
NICHTS. Es komt einfach nichts an. Es bleibt hängen
bei read / readline und das wars!

Senden geht super! Empfangen nicht!

Antworten
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.166

30.06.2016, 20:34:50 via Website

Sicher dass der gegenspieler auch was sendet?

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 4

30.06.2016, 21:03:16 via Website

Sicher dass der gegenspieler auch was sendet?

ja, über telnet sehe ich das empfangene

Antworten
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.166

30.06.2016, 21:50:56 via App

Und eine Exception gibts auch nicht?
Komisch...

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.166

01.07.2016, 06:39:18 via App

Hängen heißt er wartet auf ankommende Daten.Aber anscheinend kommt nichts an...
Kann dir da leider auch nicht helfen

Kannst mal nen TCP client laden und schauen was damit geht.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 2.902

03.07.2016, 22:54:38 via Website

Hallo,

versuche es mal etwa so ..
(snipet aus meinem Client)

 @Override
    protected Void doInBackground(Void... arg0)
    {

        Socket socket = null;

        try {
            socket = new Socket(dstAddress, dstPort);

            ByteArrayOutputStream byteArrayOutputStream =
                    new ByteArrayOutputStream(1024);
            byte[] buffer = new byte[1024];

            int bytesRead;
            InputStream inputStream = socket.getInputStream();

            boolean connected = socket.isConnected() && !socket.isClosed();


            while ((bytesRead = inputStream.read(buffer)) != -1)
            {
                byteArrayOutputStream.write(buffer, 0, bytesRead);
                response += byteArrayOutputStream.toString("UTF-8");
            }

        } catch (UnknownHostException e)
        {

            e.printStackTrace();
            response = "UnknownHostException: " + e.toString();
        } catch (IOException e)
        {

            e.printStackTrace();
            response = "IOException: " + e.toString();
        }
        finally
        {
            if(socket != null)
            {
                try
                {
                    socket.close();
                } catch (IOException e)
                {

                    e.printStackTrace();
                }
            }
        }
        return null;
    }

— geändert am 04.07.2016, 10:20:22

Liebe Grüße - Stefan
[ App - Entwicklung ]

Antworten

Empfohlene Artikel