1. zaten tek bir seçenek var, neden sanki elli farklı opsiyon sunuyormuş gibi işlem seçtiriyorsun?
2. o tek işlem seçeneğinin yanında "1-1000" diye bir ibare var. dümdüz her insan için muhtemelen anlamı şöyle olsa gerek: ben 1'den 1000'e kadar tarıyorum. e koda bakıyorsun, taradığı portlar ports := [80, 9929, 31337, 8008, 21, 443, 20, 22, 23, 25, 110, 143, 993, 123, 161, 162, 500, 389, 3389, 554, 445, 1434, 5900] (arkadaşım bu liste neden böyle ilginç bir sıraya sahip? prioritized bir liste diyeceğim, onu da dedirtmeyecek bir sıraya sokmuşsun. sorted(ports) -> [20, 21, 22, 23, 25, 80, 110, 123, 143, 161, 162, 389, 443, 445, 500, 554, 993, 1434, 3389, 5900, 8008, 9929, 31337]). şayet toplamda 23 tane portu kontrol edeceksen, neden 1-1000 diyorsun? eğer ki taranacak port aralığı 1-1000 ise, 16. indisten sonra gelen 1434, 3389, 5900, 8008, 9929 ve 31337 portlarını kontrol etme ihtiyacı neden duyuyorsun?
3. kod boyunca kullanılmayan os ve time standart modüllerini neden içe aktarmışsın?
4. 23 tanecik port için multi-threading kullanmak -ve her bir port için ayrı thread açmak- excalibur ile peynir doğramak olmuyor mu? kaldı ki her port için 0.4 saniyecik neyine yetecek? bu tahmini yanıt süresiyle spooky-action-at-a-distance canlandırması mı yapıyoruz, false-positive manyağı mı yapacaksın bizleri?
5. işlem "1" olmazsa tarama fonksiyonu ass-sla tanımlanmıyor, ve sen her halükarda namecik maincik olduğu müddetçe o fonksiyonu çağırıyorsun. katı cisim varsayımını mı uyguluyoruz, bu uygulamada neden hiç esneklik yok?
kafamda çok soru var adnan. deli sorular.