Python Threading socket - PullRequest
       2

Python Threading socket

0 голосов
/ 25 августа 2010

Я пытаюсь реализовать функциональность потоков для этого ответа: Сканирование сети класса 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 голос
/ 25 августа 2010

Я думаю, что он дал вам ответ, иди и прочитай документы, а затем вернись, когда у тебя возникнут конкретные вопросы по реализации поточного кода ... Если ты читаешь уже упомянутую статью о devshed, ты можешь увидеть, как ты создаешь свойсобственный класс потока и передача IP-адреса, с которым вы хотите работать, в поток и помещение вашего рабочего кода туда с какой-то потокобезопасной очередью, где поток может вернуть любую информацию, которую вы ищете.

0 голосов
/ 25 декабря 2012

Я однажды написал многопоточный сканер портов .Не стесняйтесь использовать его для некоторых идей по улучшению производительности.Со временем он был улучшен и реорганизован таким образом, что он не дает краткого примера, а вместо этого реализует более надежную реализацию с повторно используемыми компонентами.Я надеюсь, что основные идеи не замаскированы абстракцией.

0 голосов
/ 25 августа 2010

Этот вопрос не очень специфичен.Звучит так: «Мне нужна поддержка потоков для моего кода, пожалуйста, сделайте всю работу за меня».

Пожалуйста, прочитайте документы о потоках в Python и связанные с ними темы, такие как Queue класс.Если у вас есть более конкретный вопрос, вернитесь и спросите снова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...