Python 线程套接字
我正在尝试为这个回答实现多线程功能:扫描一个C类网络的Python
到目前为止,我有这样的代码:
...[snip]..
m = re.search("/", str(host))
if m :
net,_,mask = host.partition('/')
mask = int(mask)
net = atod(net)
for host in (dtoa(net+n) for n in range(0, 1<<32-mask)):
try:
mycustomsocket(host)
except:
print host+" is down"
pass
else:
mycustomsocket(host)
我想要的是同时打开255个线程,使用mycustomsocket()来扫描所有主机,这样可以提高速度。
任何帮助都将非常感谢!
3 个回答
-1
这个问题不太具体。听起来像是:“我需要我的代码支持多线程,请帮我解决这个问题。”
请先阅读一下关于 Python 中多线程的文档,还有一些相关的内容,比如 队列 类。如果你有更具体的问题,欢迎再回来问。
0
我曾经写过一个多线程端口扫描器。你可以随意参考它,看看怎么提高性能。随着时间的推移,这个程序经过了改进和重构,现在它的代码不再是简单的例子,而是实现了一个更强大、可以重复使用的组件。我希望核心思想不会因为这些复杂的结构而被掩盖。
1
我觉得他已经给你答案了,去看看文档吧,等你有具体的问题再回来问关于线程代码的实现……如果你已经读过之前提到的devshed文章,你会看到怎么创建自己的线程类,并把你想要处理的IP地址传给这个线程,然后把你的工作代码放在里面,使用某种线程安全的队列,这样线程就可以把你需要的信息放回去。