【问题标题】:Python Threading socketPython 线程套接字
【发布时间】:2010-08-25 02:22:24
【问题描述】:

我正在尝试为此答案实现线程功能: Scanning a Class C network 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() 解析的主机,以解决速度问题。

任何帮助将不胜感激!

【问题讨论】:

标签: python multithreading sockets


【解决方案1】:

我认为他确实给了你答案,去阅读文档,然后当你对实现线程代码有具体问题时回来......如果你阅读了已经提到的关于 devshed 的文章,你可以看到你是如何创建你的拥有自己的线程类并将您要使用的 IP 地址传递到线程中,并将您的工作代码与某种线程安全队列放在那里,线程可以放回您所追求的任何信息。

【讨论】:

    【解决方案2】:

    我曾经写过multi-threaded port scanner。随意使用它来获得一些关于提高性能的想法。随着时间的推移,它已经被改进和重构,因此它没有提供一个简洁的示例,而是使用可重用的组件实现了一个更健壮的实现。我希望核心思想不会被抽象所掩盖。

    【讨论】:

      【解决方案3】:

      这个问题不是很具体。听起来像:“我的代码需要线程支持,请为我完成这项工作。”

      请阅读docs about threading in PythonQueue 类等相关主题。如果您有更具体的问题,请回来再问。

      【讨论】:

      • 不,我只是想知道我应该怎么做。我是初学者,有什么不知道的权利,好吧。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-28
      • 1970-01-01
      相关资源
      最近更新 更多