Jeśli serwer TCP i klient są ze sobą połączone, chciałbym ustalić, kiedy klient nie jest już połączony. Myślałem, że mogę to zrobić po prostu próbując wysłać wiadomość do klienta i gdy send() wróci z -1, mogę wtedy odłączyć gniazdo. Ta implementacja działa w systemie Windows, ale w chwili, gdy próbuję to zrobić w systemie Linux z gniazdami BSD, wywołanie funkcji send() w aplikacji po stronie serwera powoduje awarię mojej aplikacji serwera, jeśli klient nie jest już połączony. Nawet nie zwraca -1 ... tylko kończy program.Wysyłanie protokołu TCP nie zwraca przyczyny powodującej awarię:
Proszę wyjaśnić, dlaczego tak się dzieje. Z góry dziękuję!