Verbindung besteht/besteht nicht

Status
Nicht offen für weitere Antworten.

e9926044

Bekanntes Mitglied
Hallo,

ich hab ein Problem mit meinem TimeOut und zwar folgendes:wenn Daten empfangen werden, dann komme ich in die while- Schleife, wenn keine Daten empfangen werden, bleibe ich bei der while- Schleife hängen.
Mein Problem ist jetzt, dass ich nach einer gewissen Zeit eine MEldung ausgeben möchte, wenn keine Daten mehr empfangen werden und dann die Verbindung schließe.

Ich weiß aber jetzt nicht, wie ich das hier bei der while- schleife einbauen kann.
Vielleicht hat da jemand eine Idee.

Vielen DANK und lg
Hannes

Code:
while ((len = inputStream.read(readBuffer)) != -1) 
		    {
		    TimeOutSerial++;
		    System.out.println("TimeOut: " + TimeOutSerial);
 
G

Gast

Gast
wenn du über Socket empfängst:

Socket#setSoTimeout(int)

der schmeisst dan bald mal ne SocketTimoutException
 

Wladimir

Mitglied
Der Standardweg bei Streams verwendet die InputStream.available() Methode.
In dem Beispiel zeige ich, dass nur wenn Daten zum Lesen anstehen auch gelesen wird.
Sind keine Daten vorhanden, wird für 1 Sekunde gewartet.
Nach 10 Sekunden ist Timeout.

Code:
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

public class Forum1
{
    public static void main(String[] args)
    {
        FileInputStream inputStream = null;

        try
        {
            inputStream = new FileInputStream("in.txt");
        }
        catch (FileNotFoundException e1)
        {
            e1.printStackTrace();
        }

        StringBuilder builder = new StringBuilder();
        boolean hasData = true;
        long lastReadTime, timeOut;
        byte[] readBuffer = null;

        timeOut = 10000;
        lastReadTime = System.currentTimeMillis();

        try
        {

            while (hasData)
            {
                try
                {
                    if (inputStream.available() > 0)
                    {
                        hasData = inputStream.read(readBuffer) == -1 ? false : true;
                        builder.append(readBuffer);
                        lastReadTime = System.currentTimeMillis();
                    }
                    else
                    {
                        try
                        {
                            if (System.currentTimeMillis() - lastReadTime > timeOut)
                            {
                                throw new Exception("Timeout");
                            }
                            Thread.sleep(1000);
                        }
                        catch (InterruptedException e)
                        {
                            e.printStackTrace();
                        }
                    }
                }
                catch (IOException e)
                {
                    e.printStackTrace();
                }
            }
            System.out.println(builder.toString());
        }
        catch (Exception e)
        {
            System.out.println("Timeout");
        }
    }

}
 

e9926044

Bekanntes Mitglied
Wie kann es sein, dass ci bei inputStream.available() immer 0 bekomme? Da kann ich den ganzen Code vom Wladimir nicht verwenden?

Kann das sein bei der seriellen Schnittstelle, dass das nicht unterstützt wird.

lg und vielen DANK

Hannes
 

e9926044

Bekanntes Mitglied
gibts nicht sowas, dass man sagt, ich warte 20 Sekunden bis was kommt, anderenfalls wirf ich eine Exception?
So in der Art

inputStream.read(readBuffer) throw TimeException ()

oder so ähnlich.

lg und vielen Dank

Hannes
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Meeresgott Input/Output Java Socket Verbindung Allgemeine Java-Themen 1
I Verbindung eines Java-Plugins mit Webserver Allgemeine Java-Themen 3
D Socket Verbindung mit TLSv1 Allgemeine Java-Themen 1
J Programm meldet "Keine Rückmeldung" nach Verbindung zum Server Allgemeine Java-Themen 4
Bluedaishi Input/Output Bluetooth Bondrucker MZ220 keine Verbindung Allgemeine Java-Themen 0
S runnable jar file in Verbindung mit itext Allgemeine Java-Themen 3
M Verbindung zu Webserver schlägt fehl Allgemeine Java-Themen 0
B Technikfrage bzgl Verbindung von Frontend und Backend Allgemeine Java-Themen 0
G genestete SSH-Verbindung Allgemeine Java-Themen 4
B Webbrowser mit Proxy- Verbindung starten Allgemeine Java-Themen 6
GUI-Programmer Java Mail - Proxy für Verbindung einstellen Allgemeine Java-Themen 2
D Socket Java Socket Verbindung Allgemeine Java-Themen 14
F Internet Verbindung verschlüsseln Allgemeine Java-Themen 17
F Verbindung mit einem UMTS-Stick herstellen um SMS zu empfangen Allgemeine Java-Themen 8
T Batch-File / keine Verbindung zur DerbyDB Allgemeine Java-Themen 3
B verbindung mit exchange server Allgemeine Java-Themen 3
MQue FTP Verbindung download Allgemeine Java-Themen 5
R Socket verbindung mit Timeout Allgemeine Java-Themen 2
M Hibernate frage zur Verbindung Allgemeine Java-Themen 3
G Serielle Verbindung zu einem Handy Allgemeine Java-Themen 3
E iBatis und wie oft wird eine Verbindung hergestellt Allgemeine Java-Themen 5
E ftp verbindung mit javacode Allgemeine Java-Themen 5
S svnkit Verbindung über https Anleitung Allgemeine Java-Themen 6
E Verbindung über TCP Allgemeine Java-Themen 3
P Verbindung überprüfen Allgemeine Java-Themen 5
E Thread Fragen in Verbindung mit Swing Allgemeine Java-Themen 4
G Verbindung zum Server Allgemeine Java-Themen 10
T Frage zu char in verbindung mit int Allgemeine Java-Themen 4
MQue Verbindung zweier Klasse Allgemeine Java-Themen 13
MQue TCP- Verbindung Allgemeine Java-Themen 12
E TCPIP- Verbindung Allgemeine Java-Themen 3
T RDP Verbindung mit Java herstellen Allgemeine Java-Themen 4
H sichere Datenbank-Verbindung Allgemeine Java-Themen 4
F Socket - Server verbindung Allgemeine Java-Themen 12
M Probleme mit URLClassLoader in Verbindung mit rmi Allgemeine Java-Themen 6
K Runtime.exec und DFÜ-Verbindung Allgemeine Java-Themen 5
R ClassLoader funktioniert in Verbindung mit JAR-Datei nicht Allgemeine Java-Themen 8
G Welches Problem besteht bei den Typparametern? Allgemeine Java-Themen 5

Ähnliche Java Themen

Neue Themen


Oben