首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >具有多线程的Python端口扫描器

具有多线程的Python端口扫描器
EN

Stack Overflow用户
提问于 2018-06-19 05:19:32
回答 1查看 3.6K关注 0票数 1
代码语言:javascript
复制
import threading, socket, sys, time
from queue import Queue

print_lock = threading.Lock()

if len(sys.argv) !=2 :
    print ("Usage: portscan.py <host>")
    sys.exit(1)

host = sys.argv[1]

def scan(port):
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    try:
        con = s.connect((host, port))
        with print_lock:
            print('Port: ' + str(port) + ' is open')
        con.close()
    except:
        pass

def threader():
    while true:
        worker = q.qet()
        scan(worker)
        q.task_done()

q = Queue()

for x in range(100):
    t = threading.Thread(target=threader)
    t.daemon = True
    t.start

for worker in range(1, 1024):
    q.put(worker)

q.join()

当我运行它时,它只是挂起,我没有得到任何结果,它也没有给我任何错误。我不明白为什么它不能工作。当我没有添加线程能力时,它确实可以工作。

EN

回答 1

Stack Overflow用户

发布于 2018-06-19 05:25:41

代码语言:javascript
复制
for x in range(100):
    t = threading.Thread(target=threader)
    t.daemon = True
    t.start() # <--- you have to call start? or is this a typo
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50917622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档