Portál AbcLinuxu, 10. května 2025 05:27
Dobry den, delam program (J2SE) neco na zpusob port scaneru (metodou connect). Zkousim se vytvorenim socketu (Socket socket = new Socket(ip, port);) pripojit, pokud k tomu dojde, prohlasim dany port za otevreny a pokud se vyskytne SocketException, prohlasim dany port na zavreny - naprosto jednoduche.
Na localhostu toto funguje dokonale. Problem je, ze pokud nektery nejaky stroj v internetu (zkousel jsem google), program se proste zasekne. Vsiml jsem si, ze nektere servery maji nastavene, aby vubec nijak neodpovidaly na prichozi spojeni, program tedy na radku "Socket socket = new Socket(ip, port);" stale ceka co se bude dit, jenze ono se nedeje nic.
Proto jsem se chtel zeptat, jestli by nejak neslo nastavit casovy limit, po ktery se bude na dokonceni akce cekat (napr 30 sekund) a po vyprseni prohlasit dany port za zavreny...
Dekuji moc, ja mel presne tento problem: http://egopoly.com/2007/01/23/how-to-set-connect-time-out-on-java-sockets/
Jo a pochopil jsem dobre, ze filtered (jak to pise nmap) jsou presne tyto porty a u kterych vyprsi time out?
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.