nie moge zamknac programu

0

Mam taki problem:
Robie sobie liste dynamicznych TClientSocketow. Kazdemu robie connect. Czasem zdaza sie, ze serwer nie dziala, wiec oczywiscie wyskakuje "asynchronous socket error".
I jesli takie cus wyskoczy, to juz ani close ani application.terminate nie dziala.
Probowalem przed tym close zrobic forem dla wszystkich klientow socket.disconnect, ale to tez nie dziala. Czy ktos ma jakis pomysl jak to zrobic?
Zaznaczam, ze wszystkie sockety musza byc nonblocking, bo jak sie lacze z kilkunastoma srwerami na raz, to zanim bym sie polaczyl ostatnim, to pierwszy dostal by juz timeouta :P
Męczę się nad tym już kilka godzin i wymiękam.

0

Spruboj umiescic kod ktory wywoluje blad w dloku try .. except.
Nie wiem czy bedzie dzialac .. ale mysle ze powinno pomóc :)

--
Pozdrawiam {hello}
Tomasz K.

0

ha, o tym, to ja juz dawno pomyslalem. tylko jest jeden problem. Socket robi to chyba w osobnym watku i samo miejsce przechodzi dalej, program sobie dziala pare sekund i dopiero sie pojawai error. A potem juz nie wiem, co zrobic. Niby caly program normalnie dziala, moge wszystko robic oprocz zamkniecia programu. Oczywiscie jesli error nie wyskoczy, to wszystko jest OK.

0

eh.. ludzie tyle razy pisałem jedno i to samo:

w OnError ( lub OnClientError) wpisz:
if ErrorCode=10060 then ShowMessage('Nie mozna połączyc sie do serwera');
ErrorCode:=0;

Jesli chcesz wszystkie kody błędów socketa to zajżyj tu:
http://www.vbapi.com/ref/other/winsockerror.html--Delphi 6
Pozdrowienia{hello} ,
Moderator Imperior

0

heh, ze tez na to nie wpadlem {glowa}
Wielkie dziki {browar}

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