Socket Automatischer Reconnect nach einem Disconnect.

DerLonG

Neues Mitglied
Hallo Zusammen,

ich hab bei meinem Projekt ein kleines Problem und hoffe ihr könnt mir weiterhelfen.
Erst einmal zur Logik:

Ich habe 10 Connection-Klassen, welche jeweils eine geöffnete Verbindung zu einem Server besitzen (Socket + In und OutputStream).
Diese Klassen halte ich einem Pool vor, damit ich mir jeweils eine Klasse holen kann, wenn ich sie brauche.
Nun kann es passieren, dass der Server die Verbindung trennt.
Da meine Anwendung eine relativ zeitkritische Anwendung ist, sollte die jeweilige Klasse sich von alleine Reconnecten,
ohne das ich bei Übergabe von Daten an die jeweilige Klasse teste, ob die Verbindung noch steht.
Ich könnte mir die Realisierung mit irgendwelchen Listenern vorstellen, jedoch weiß ich nicht wo ich hier ansetzen könnte.

Vielleicht habt ihr eine Idee...freue mich über jede Hilfe!!


Gruß
DerLonG
 

FArt

Top Contributor
Ich gebe dir mal eine Antwort, die du evtl. nicht hören möchtest: mache es nicht selber.

Stichwort: NETTY oder MINA usw.
 

sh

Aktives Mitglied
Ich hatte mal ein ähnliches Problem.

Welche Art von Verbindung ist das? Wenn dir der Server ein PING schickt, kannst du eine Klasse TimeoutCheck erstellen die als Thread läuft. Nehmen wir an der PING kommt in einer Frequenz von 90 Sekunden, dann lass TimeoutCheck als Thread eine Variable pro Sekunde laufend nach oben zählen, diese Variable wird bei jedem PING/PONG-Event auf 0 zurückgesetzt.
Wenn die Variable größer als 90 ist, dann hat das Programm einen PING verpasst und wurde vermutlich getrennt (Time Out).

Manche Server senden dir auch eine Nachricht wenn du einen PING verpasst hast und daraufhin vom Server die Verbindung unterbrochen wird, sowas wie "ERROR: Lost connection (Time Out)". Du könntest dann auf diese Nachricht warten und einen Reconnect durchführen.

Ich hoffe das hilft dir irgendwie weiter.

Gruß
 

Empire Phoenix

Top Contributor
Im pool kurz vorm verbindung rückgeben einmal testen ob die noch verbunden ist. Ansonsten ne andere gerade freie aussem pool zurückgeben und die Verbindung im hintergrund neu connecten. Aber wenn möglich würde ich dir auch empfehlen eines der vielen guten Frameworks dafür zu benutzen. Spart eine ganze menge zeit, wenn es aber um dem spass am rumprogrammieren geht, nur zu,.
 

DerLonG

Neues Mitglied
Danke für die vielen Antworten.

Hab mich für die Version von 'Empire Phoenix' entschieden (bevor ich seine Version gelesen hatte).

Danke noch einmal für eure hilfe!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Automatischer Login auf einer Webseite Netzwerkprogrammierung 12
E Verbindungs reconnect Address already in use Netzwerkprogrammierung 5
IT-MaD konstante Socketverbindung mit Verbindungscheck u. reconnect Netzwerkprogrammierung 5
Dann07 Audio streamen bricht immer ab nach kurzer Zeit Netzwerkprogrammierung 6
G seite nach posten eines html-forms laden Netzwerkprogrammierung 0
N websocket - keine Daten mehr nach ca 80 Sekunden Netzwerkprogrammierung 0
C Gerenderte Website nach der ausführung von JavaScript als HTML Code aus lesen Netzwerkprogrammierung 4
F Wiederverbinden nach socket Abbruch Netzwerkprogrammierung 1
T Socket sendet erst nach socket.close() Netzwerkprogrammierung 2
B Nach Verbindung gleich ObjectStream empfangen Netzwerkprogrammierung 1
L Verzeichnisse mit Inhalt nach SMB-Share kopieren Netzwerkprogrammierung 16
N HTTP Apache 4.2.1 HttpClient 302 nach Login und auf den weiteren Seiten. Netzwerkprogrammierung 5
K Socket Chat-GUI eigenes Event nach Empfangen Netzwerkprogrammierung 2
G Cookie Verwaltungs Problem nach Login auf InetSeite (Wo utma-Cookie?) Netzwerkprogrammierung 18
P Datenpakete nach Australien Netzwerkprogrammierung 7
C Socket Identifikation des clients nach der accept() Methode Netzwerkprogrammierung 2
J Nach Dateiversand werden keine Nachrichten mehr übertragen Netzwerkprogrammierung 11
J Nachricht kommt erst nach beendigung der Anwendung an Netzwerkprogrammierung 4
S Socket nach anderen clients im netzwerk suchen Netzwerkprogrammierung 3
B IP nach gewissen Kriterien überprüfen Netzwerkprogrammierung 5
V JNLP startet nicht !!?!! (je nach PC) Netzwerkprogrammierung 1
H Object Cast Problem nach Übertragung mit Log4j Netzwerkprogrammierung 5
DeviAn Über ein Linux Server ein Windows Server nach einer File fragen Netzwerkprogrammierung 6
Q Datein von Windows nach Mac senden Netzwerkprogrammierung 4
L RMI Programm beendet ohne Fehler sofort nach Start (Windows 2000) Netzwerkprogrammierung 7
T Zugriffsverweigerung nach Dateitransfer Netzwerkprogrammierung 7
T Nach Servern suchen Netzwerkprogrammierung 2
K Bad Request nach Form Login in Jakarta HttpClient Netzwerkprogrammierung 4
L nach Servern suchen Netzwerkprogrammierung 2
M ordner nach socket-übertragung defekt Netzwerkprogrammierung 5
B Im eingelesenen Text nach einem Wort suchen Netzwerkprogrammierung 46
M serialisierung funktioniert nur nach neuer instanzierung Netzwerkprogrammierung 3
W fehlerhafte Datei nach Dateitransfer per ServletOutputStream Netzwerkprogrammierung 2
A Client stürzt nach versand ab Netzwerkprogrammierung 13
M Verbindung nach Serverabsturz wieder aufbauen Netzwerkprogrammierung 9
S Unix Datei vom Server nach Windows übertragen Netzwerkprogrammierung 8
G Port belegt nach Server restart Netzwerkprogrammierung 5
G Socket wird nach Portscann geschlossen Netzwerkprogrammierung 2
N Verarbeitung nach Weiterleitung in Sockets Netzwerkprogrammierung 2
L Frage nach Socket Netzwerkprogrammierung 4

Ähnliche Java Themen

Neue Themen


Oben