Почему моя асинхронная функция не работает асинхронно?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Почему моя асинхронная функция не работает асинхронно?

Сообщение Anonymous »

Я хочу (быстро) просканировать свою локальную сеть, чтобы найти хост, прослушивающий определенный TCP-порт, например 2442 (сетевой API JS8Call, если кому интересно).
Я скопировал структуру программы из туториала, объясняющего асинхронное выполнение в Python с помощью пакета asyncio. Программа вроде работает, но отдельные задачи выполняются не параллельно, а последовательно, хотя создание задач и сбор результатов вроде бы в порядке. Когда он запускается, я вижу, что сообщения печати из асинхронной функции ping появляются последовательно, причем следующее всегда появляется ровно после истечения времени ожидания предыдущего.
Что не так с моим функция ping? Полагаю, он не создает объект сопрограммы.
#!/usr/bin/python

import socket
import asyncio

socket.setdefaulttimeout(0.5)

async def ping(host, port):
r = f'{host}:{port} OK'
try:
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect( (host, port) )
print( r )
s.close()
return r
except Exception as X:
print(f'{host} FAILED')
return X

async def main():
tasks = []
async with asyncio.TaskGroup() as tg:
# start all tasks
for i in range(5,240):
host = f'192.168.33.{i}'
t = tg.create_task( ping(host, 22) )
tasks.append(t)
results = [ task.result() for task in tasks ]
for p in results:
if p != None:
print(p)

asyncio.run( main() )


Подробнее здесь: https://stackoverflow.com/questions/791 ... chronously
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Асинхронная функция не работает асинхронно
    Anonymous » » в форуме Python
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Можете ли вы проверить, действительно ли функция работает асинхронно?
    Anonymous » » в форуме C#
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Зачем нам нужна асинхронная функция в C#
    Гость » » в форуме C#
    0 Ответы
    33 Просмотры
    Последнее сообщение Гость
  • Асинхронная функция и запрос AJAX с jQuery
    Anonymous » » в форуме Jquery
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Асинхронная функция C# в Lambda
    Anonymous » » в форуме C#
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»