Socket Verbindung Überprüfen

Aruetiise

Aktives Mitglied
Hey
Kann ich mit einer Methode die Verbindung zum Server vom Client aus feststellen oder muss ich Dateien vom Server an denn Client senden solange er verbunden ist, so zu sagen als Bestätigung?
 

Robat

Top Contributor
Hab gerade gesehen dass diese Heartbeat Funktion schon implementiert ist.
Schau dir dazu mal die setKeepAlive(..) und getKeepAlive() Methoden an.
Mehr dazu findest du eventuell hier.
 

mrBrown

Super-Moderator
Mitarbeiter
Hab gerade gesehen dass diese Heartbeat Funktion schon implementiert ist.
Schau dir dazu mal die setKeepAlive(..) und getKeepAlive() Methoden an.
Mehr dazu findest du eventuell hier.
Für so ziemlich jeden Zweck ist aber ein eigener "Heartbeat" besser geeignet, das vorhanden keepAlive hat einen variablen Zeitraum und muss nicht mal überhaupt implementiert sein
 

Aruetiise

Aktives Mitglied
Also konkret geht es mir darum, das ich will, das der Client solange versucht zum Server eine Verbindung auf zu nehmen, bis die Verbindung steht. Dies wollte ich dadurch erreichen, was aber nicht geht, weil immer eine Exception ausgelöst wird, wenn der Server nicht online ist. Kann man das auch anders erreichen, das er immer wieder versucht die Verbindung aufzunehmen?

Und Danke für eure Antworten zu meiner ursprünglichen Frage. :D
 

Aruetiise

Aktives Mitglied
Muss ich morgen mal testen habe eben nicht so gut überlegt, ob ich das in eine schleife verpackenkann aber das ist ja kein Problem. Sollte schlafen gehen
 

Aruetiise

Aktives Mitglied
Mit der schleife geht nicht. Hatte recht muss unendlich verschachtelt werden. Denn es muss mit try und catch abgefangen werden und kann somit nicht einfach in eine schleife... zudem beendet sich das Programm sofort im catch block ohne es zu versuchen, neu zu verbinden.

Bekomme die Exception

java.net.ConnectException: Connection refused: connect
at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at client_t.Client_senden.main(Client_senden.java:21)
 

lant

Mitglied
wie hast du es denn implementiert?
du müsstest es eigentlich so implementieren
Code:
while(failed){
    try{
           //connect to server
    } catch (Exception e){
           //handle exception
    }
}
dann müsste es auch so lange versuchen zu connecten bis es geklappt hat oder durch ein Event außerhalb dieser while Schleife das Programm gestoppt wird.
 

Aruetiise

Aktives Mitglied
Mein Client Versucht jetzt weiter zu verbinden. Danke.

Jedoch nimmt mein Server die Verbindung nur an, wenn er vor dem Client gestartet wurden.Wenn er danach gestartet wurde, laufen Server und Client einfach weiter ohne eine Verbindung aufzubauen.
Java:
//Code Server
public static void main(String[] args) {
    try{
        ServerSocket serverSocket = new ServerSocket(5555);
        System.out.println("Server gestartet");
        Socket clientSocket_1 = new Socket();
      
        try{
        clientSocket_1 = serverSocket.accept();
        System.out.println("Client 1 Verbunden");
        }catch(IOException e){
        System.out.println("Verbindungsaufbau auf port 5555 nicht möglich");
        e.printStackTrace();
        System.exit(0);
        }
      
      
        BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket_1.getInputStream()));
      
        FileWriter writer = new FileWriter("D:/JavaProgrammieren/Test.txt");
        BufferedWriter bw = new BufferedWriter(writer);
      
      
        String clientInput_1 = null;
        while(true){
            while ((clientInput_1 = in.readLine()) != null ){
                bw.flush();
                bw.write(clientInput_1 + "\n");
                System.out.println(clientInput_1);
                clientInput_1 = null;
            }
        }
      
      
    }catch(IOException e){
        System.out.println("Fehler IO");
        e.printStackTrace();
        System.exit(0);
    }
    }

Java:
//Code Client
public static void main(String[] args) {
    Socket Socket = new Socket();
    String Ip = "127.0.0.1";
    int port = 5555;
    SocketAddress Adresse = new InetSocketAddress(Ip, port);
  
    try{
        Socket.connect(Adresse, 10*1000);

        System.out.println("Verbinde zu server...");
        PrintWriter out = new PrintWriter(Socket.getOutputStream());

        FileReader fr = new FileReader("D:/JavaProgrammieren/Test_2.txt");
        BufferedReader br = new BufferedReader(fr);
          
        while(true){
        try{
            String Zeile;
            int Zeilen = 0;
          
            while(true){
            Thread.sleep(20);
            Zeile=null;
            Zeile = br.readLine();
            if(Zeile != null){
                out.write(Zeile + "\n");
                Zeilen++;
                System.out.println(Zeilen);
            }
            if(Zeilen == 10){
                out.close();
                br.close();
                fr.close();
                Socket.close();
            }
        }
        }catch(Exception e){
            System.exit(0);
        }
        }
    }catch( UnknownHostException e){
        System.out.println("Server nicht ereichbar");
        e.printStackTrace();
    }catch (IOException e){
        System.out.println("Fehler reconnect");
       
boolean Verbunden =false;
       while(Verbunden == false){
           try{
            Socket.connect(Adresse, 10*1000);
            Verbunden = true;
            } catch (Exception f){
            try{
                       Thread.sleep(5*1000);
                       }catch(Exception g){
                           System.out.println("Fehler Wait");
                       }
          
                   System.out.println("Fehler reconnect");
            }
        }
    }
    }
 

mrBrown

Super-Moderator
Mitarbeiter
Generell würde ich den gesamten Code für die Verbindung in der Schleife laufen lassen, aktuell wiederholst du das Verbinden nur dann, wenn es eine IOException gibt, und bekommst von einer dann erfolgreichen Verbindung auch nichts mit, weil du weder auf Client noch auf Serverseite irgendetwas ausgibst.
 

Aruetiise

Aktives Mitglied
Java:
boolean Verbunden =false;
        while(Verbunden == false){
            try{
            Socket.connect(Adresse, 10*1000);
            Verbunden = true;
            } catch (Exception f){
            try{
                       Thread.sleep(5*1000);
                       }catch(Exception g){
                           System.out.println("Fehler Wait");
                       }
           
                   System.out.println("Fehler reconnect2");
            }
        }

Bei diesem Code müsste er doch die Schleife so lange ausführen, bis der Server online geht und dann hinter der Schleife weiter machen, oder?
 

Meniskusschaden

Top Contributor
Außerdem ist der Socket nach dem ersten fehlgeschlagenen connect ohnehin geschlossen und kann nicht wieder geöffnet werden. Du musst in der Schleife also auch einen neuen Socket erstellen.
Ich würde in den catch-Blöcken auch die Exception ausgeben, damit du merkst, was jeweils die Ursache für das Fehlschlagen eines connect-Aufrufs ist. Das ist beim zweiten Aufruf nämlich eine andere, als beim ersten Aufruf.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
X Kann ich einen Client/Server verbindung hinkriegen die mir alle paar Sekunden die aktuellen Daten per Realtime zuschickt ? Netzwerkprogrammierung 9
F Verbindung zu einem LDAP Server über Java Netzwerkprogrammierung 4
D Verbindung zu Geräten mit gleicher IP aber in unterschiedlichen VLans aufbauen Netzwerkprogrammierung 2
M Socket Socket lehnt Verbindung ab Netzwerkprogrammierung 3
IAmFloppy Socket Nachstellen der Verbindung Netzwerkprogrammierung 6
M Socket Verbindung Matlab(Server) Java(Client) Netzwerkprogrammierung 1
M Socket peer to peer Verbindung zwischen Java und Matlab Netzwerkprogrammierung 0
S Bluetooth Verbindung zwischen Android app und Raspberry Pi 3 Netzwerkprogrammierung 1
S Peer2Peer Verbindung trotz NAT Netzwerkprogrammierung 2
T VPN-Verbindung über Java Netzwerkprogrammierung 4
F Socket Verbindung mit Verschlüsselung und Authentifierzung Netzwerkprogrammierung 1
F Probleme mit Connection Reset bei Telnet Verbindung Netzwerkprogrammierung 1
U Client Soap Verbindung wieder schließen Netzwerkprogrammierung 0
M Verbindung zwischen zwei Pc in dem Selben Netzwerk Netzwerkprogrammierung 8
P Socket Socket-Verbindung Input sehr langsam Netzwerkprogrammierung 1
S FTP Verbindung zu einem BS2000 Großrechner mit Commons Net Netzwerkprogrammierung 0
F Einfache Socket Verbindung Netzwerkprogrammierung 2
F Verbindung zwischen Server und handy Netzwerkprogrammierung 1
M TCP Verbindung Byte-weise lesen? Netzwerkprogrammierung 5
Shams Problem mit Eventbus in Verbindung mit Server Netzwerkprogrammierung 0
Z Verbindung zwischen 2 Rechnern über ServerSockets nicht möglich Netzwerkprogrammierung 3
F TCP Client, verbindung aufrecht halten Netzwerkprogrammierung 0
I Swing hängt sich auf bei Verbindung zum Server Netzwerkprogrammierung 3
P RMI Hohe CPU Last RMI Verbindung Netzwerkprogrammierung 4
J Pc - Handy Verbindung? Netzwerkprogrammierung 3
M Socket 2x Proxy multithread-server mit Cross Verbindung Netzwerkprogrammierung 0
T Verbindung zum Server fehlgeschlagen Netzwerkprogrammierung 7
D Einfache Verbindung zu Linux Server und Datei auslesen Netzwerkprogrammierung 13
B Nach Verbindung gleich ObjectStream empfangen Netzwerkprogrammierung 1
R Dauerhaft offene Socket-Verbindung? Netzwerkprogrammierung 3
P server - client verbindung (anfänger) Netzwerkprogrammierung 8
G Socket Socket verbindung für Chat System Netzwerkprogrammierung 3
S Socket Socket Verbindung wiederherstellen Netzwerkprogrammierung 16
T Socket Bidirektionale Verbindung mit Sockets Netzwerkprogrammierung 8
N (TCP) Verbindung ohne Portforwarding Netzwerkprogrammierung 12
N Lan-Verbindung erstellen Netzwerkprogrammierung 2
H Socket Java Chat - Verbindung zum Server fehlgeschlagen. Netzwerkprogrammierung 5
A TCP über UDP Verbindung? Netzwerkprogrammierung 10
D TCP Verbindung (Java Client und Visual Basic Server) Netzwerkprogrammierung 12
E Verbindung zu SQL-Datenbank auf einem Server Netzwerkprogrammierung 13
S Socket Applet Client bekommt keine GLOBALE Verbindung zum Server Netzwerkprogrammierung 25
D Server Client Verbindung - Unexpected End of File - Invalid HTTP Response Netzwerkprogrammierung 4
V NullPointerException bei Verbindung zu RabbitMQ-Server Netzwerkprogrammierung 4
B FTP commons net verschlüsselte verbindung Netzwerkprogrammierung 11
C Verbindung zu einem Hostrechner über das Internet herstellen Netzwerkprogrammierung 15
T Socket Client versucht zyklische Verbindung zum Server Netzwerkprogrammierung 4
X Über eine Socket-Verbindung Arrays übergeben Netzwerkprogrammierung 5
P Socket Verbindung über das Internet Netzwerkprogrammierung 2
A Socket Socket Verbindung unterbrochen --> keine Exception Netzwerkprogrammierung 7
S SVNKit - Verbindung zum Repository trennen? Netzwerkprogrammierung 2
P Socket neuer Client - neue(r) Socket/Verbindung geöffnet? Netzwerkprogrammierung 6
M Problem mit Socket-Verbindung Netzwerkprogrammierung 2
X SSH Verbindung zu Remote Datenbank Netzwerkprogrammierung 2
S TCP Verbindung zu Beamer Netzwerkprogrammierung 8
Y server client socket verbindung übers internet aufbauen Netzwerkprogrammierung 8
M ganymed-ssh2.har: ftp-Verbindung über ftp-Proxy Netzwerkprogrammierung 2
D Verbindung zw. zwei Rechnern funzt nicht Netzwerkprogrammierung 5
F Socket Socket Verbindung Netzwerkprogrammierung 10
E Server schließt einfach verbindung? Netzwerkprogrammierung 6
Shoox VPN-Verbindung für Datenbankzugriff Netzwerkprogrammierung 2
X Socket Handy/PC Verbindung unterscheiden Netzwerkprogrammierung 18
O Telnet verbindung Netzwerkprogrammierung 4
Dit_ UDP Verbindung durch Proxy Netzwerkprogrammierung 4
H Socket Client server,verbindung läst sich nicht abbauen&code optimierung Netzwerkprogrammierung 3
V Verbindung zweier Rechner über das Internet mit Sockets Netzwerkprogrammierung 8
M HTTP HTTPS-Verbindung mittels Java und Javascript Netzwerkprogrammierung 2
N Verbindung zu Fritzbox Socket/Telnet ??? Netzwerkprogrammierung 5
multiholle RMI Verbindung Linux <-> Windows Netzwerkprogrammierung 4
S netzwerkprotokoll auf basis einer tcp verbindung erstellen Netzwerkprogrammierung 9
S SSH Verbindung mit j2ssh Netzwerkprogrammierung 3
H Socket Mit Applet Verbindung zu eigener Website aufbauen Netzwerkprogrammierung 4
H Socket Socket verbindung mit einem TeamSpeak2 Server Netzwerkprogrammierung 5
H TCP verbindung hinter NAT Netzwerkprogrammierung 28
G TCP SSL Verbindung Netzwerkprogrammierung 3
P Java / My-Sql Verbindung herstellen Netzwerkprogrammierung 6
W Socket Shellscript über ssh Verbindung aufrufen Netzwerkprogrammierung 14
N Socket Verbindung wird immer verweigert Netzwerkprogrammierung 5
Dit_ UDP-Verbindung, DatagramPakete Netzwerkprogrammierung 3
S Socket verbindung trennen Netzwerkprogrammierung 3
D Verbindung zu einem Server - POST Netzwerkprogrammierung 2
musiKk SSL-Verbindung mit Client-Zertifikat (Private Key) scheitert Netzwerkprogrammierung 13
D Socketprogrammierung Verbindung C++=>Java Netzwerkprogrammierung 23
B Probleme mit FTP verbindung Netzwerkprogrammierung 22
T Mac Adresse über Socket Verbindung abfragen? Netzwerkprogrammierung 9
L SSL Verbindung aber Server wird erst im Programm festgelegt Netzwerkprogrammierung 4
L Https Verbindung wird aus jar heraus nicht aufgebaut Netzwerkprogrammierung 12
M Verbindung über Proxy// Problem mit Outputstream bei URLConn Netzwerkprogrammierung 5
O TCP Socket-Verbindung überprüfen Netzwerkprogrammierung 4
F Peer to Peer Verbindung zwischen mehreren Clients? Netzwerkprogrammierung 8
F applet verbindung zum server Netzwerkprogrammierung 6
T Verbindung über das Internet Netzwerkprogrammierung 2
G Verbindung zwischen PC und Handy Netzwerkprogrammierung 10
B Bibliothek, um Eckdaten zur Internet-Verbindung rauszufinden Netzwerkprogrammierung 2
C Verbindung zwischen 2 Computern herstellen Netzwerkprogrammierung 12
G USB-Verbindung herstellen Netzwerkprogrammierung 3
O SSH-Verbindung (trilead-ssh2-build212) Netzwerkprogrammierung 2
K Verbindung mit Unix Server aufnehmen Netzwerkprogrammierung 2
J close() Socket Verbindung nötig ? Netzwerkprogrammierung 3
U problem mit verbindung zu einem irc server Netzwerkprogrammierung 3
A WLAN-Verbindung Netzwerkprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben