Python 线程套接字

0 投票
3 回答
1113 浏览
提问于 2025-04-16 03:15

我正在尝试为这个回答实现多线程功能:扫描一个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地址传给这个线程,然后把你的工作代码放在里面,使用某种线程安全的队列,这样线程就可以把你需要的信息放回去。

撰写回答