Gniazda i kanały gniazd

0

Do tej pory nie miałem żadnych problemów z klasą Socket. Niestety problemy zawsze się znajdą.
Chodzi mianowicie o przerwanie operacji łączenia się gniazda ze zdalnym komputerem. Metoda inerrupt niestety nie działa w tym przypadku... Słyszałem, że w tej systuacji należałoby posłużyć się klasą SocketChannel. Spróbowałem i rzeczywiście działa, z tymże klasa ta nie obsługuje znowu timeoutów :-[ . Ani timeoutów połączenia gniazda z serwerem, ani timeoutów czytania i zapisywania z / do strumienia. Myślałem nad tym, by takiego czegoś samemu nie napisać (jakieś wątki odmierzające x sekund, po minięciu których wywołuję interrupt()). Jednak nie zaszkodzi spytać, czy jest jakiś prostszy, bardziej efektywny sposób?

0

skoro chcesz przerwac operacje laczenia, to z pewnoscia z innego watku. Wywolaj wiec metode socket.close()

pozdrawiam

0

;) Rzeczywiście, tak też można. Bardzo dziękuję!

1 użytkowników online, w tym zalogowanych: 0, gości: 1