Pro-Linux.de

Pro-Linux

Pro-Linux Diskussions- und Hilfeforum
Aktuelle Zeit: 19. Nov 2018 22:33

Alle Zeiten sind UTC+01:00




Ein neues Thema erstellen  Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Netzwerkverbindung noch aktiv?
BeitragVerfasst: 13. Feb 2007 7:07 
Hi,

ich habe hier eine Netzwerkverbindung zwischen zwei nichtblockierenden Sockets. Wenn ich auf einer Seite versuche etwas zu lesen ohne dass die andere was gesendet hat, so bekomme ich das mit einem Fehler EAGAIN / EINPROGRESS gemeldet.

Nur: wie erfahre ich, ob die Gegenseite nicht mehr senden kann weil sie die Verbindung bereits geschlossen hat? An Hand dessen dass keine Daten mehr kommen kann ich es nicht feststellen (und eine Lösung auf Protokollebene bei der ich einfach Nachfrage ob die Gegenseite noch am Leben ist, ist nicht realisierber).

NWorker


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 13. Feb 2007 12:33 
Offline
Benutzeravatar

Registriert: 11. Feb 2006 19:10
Beiträge: 3569
Setz' die Socket-Option SO_KEEPALIVE, dann bekommst du ein SIGPIPE, wenn die Gegenseite weg ist. Klappt nur mit Stream-Sockets (also z.B. TCP, nicht mit UDP)

$ man setsockopt
$ man 7 socket

Janka

_________________
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 13. Feb 2007 18:34 
Ah das sieht gut aus - und wirft die nächste Frage auf: wie kann man die Timeoutzeit von SO_KEEPALIVE verändern? Sowie ich das sehe ist die mit ca. 2 Stunden recht lang...


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 14. Feb 2007 10:31 
Offline
Benutzeravatar

Registriert: 11. Feb 2006 19:10
Beiträge: 3569
$ man tcp

Such nach

TCP_KEEPIDLE
TCP_KEEPINTVL
TCP_KEEPCNT

oder, global

/proc/sys/net/ipv4/tcp_*

Das ist aber leider Linux-spezifisch. Erwarte also nicht, so was bei BSD oder Cygwin etc. einstellen zu können.

Janka

_________________
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 4 Beiträge ] 

Alle Zeiten sind UTC+01:00


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.
Sie dürfen keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de