Ik heb een TCP-servertje geschreven dat meerdere verbindingen accepteert. Het programma gebruikt geen forks en threads, alleen select voor readfds.
Functie is om ontvangen data door te geven over een UDP verbinding en de andere kant van de UDP verbinding te laten weten welke clients er zijn.
Detecteren dat een client de verbinding verbreekt is geen probleem (socket wordt 'readable' en een leesactie op de socket geeft 0 terug). Hoe detecteer ik echter dat de netwerk kabel eruit getrokken wordt?
Als je de kabel eruit trekt gaat send nog steeds goed en een read 'event' treedt dan niet op.
Sockets zijn blocking. Moet ik non-blocking sockets gebruiken? Welke C-functie om sockets non-blocking te maken? Een paar regeltjes code worden gewaardeerd.
// Edit: Code al gevonden (fcntl); ik wist het maar kon 'm niet vinden
Alleen nog even kijken of het werkt
Of is er een andere manier?
Functie is om ontvangen data door te geven over een UDP verbinding en de andere kant van de UDP verbinding te laten weten welke clients er zijn.
Detecteren dat een client de verbinding verbreekt is geen probleem (socket wordt 'readable' en een leesactie op de socket geeft 0 terug). Hoe detecteer ik echter dat de netwerk kabel eruit getrokken wordt?
Als je de kabel eruit trekt gaat send nog steeds goed en een read 'event' treedt dan niet op.
Sockets zijn blocking. Moet ik non-blocking sockets gebruiken? Welke C-functie om sockets non-blocking te maken? Een paar regeltjes code worden gewaardeerd.
// Edit: Code al gevonden (fcntl); ik wist het maar kon 'm niet vinden
Alleen nog even kijken of het werkt
Of is er een andere manier?
[ Voor 9% gewijzigd door Verwijderd op 09-04-2003 08:43 . Reden: Helft van oplossing gevonden ]