Код не печатается в асинхронном веб-сокете Python

#python #sockets #asynchronous #websocket

#Python #Сокеты #Асинхронный #websocket

Вопрос:

Я пытался создать следующий веб-сокет, используя python:

 import socket
import websockets
import asyncio
import traceback

# Find host name
HELLO_MY_NAME_IS = socket.gethostname()
print(HELLO_MY_NAME_IS)

# Find IP
with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as s:
    s.connect(('8.8.8.8', 53))
    MY_IP = s.getsockname()[0]
    
print(MY_IP)

  async def port_scan():
    if not MY_IP[:3] == '192' and not MY_IP[:3] == '10.' and not MY_IP[:3] == '172':
        print('This is not a private network! SHUTTING DOWN!')
        exit()
    
    ip_range = MY_IP.split('.')
    ip_range.pop()
    ip_range = '.'.join(ip_range)
    print(ip_range)
      

async def register_client(websocket, _):
    async for message in websocket:
        print(message)

if __name__ == '__main__':
    start_server = websockets.serve(register_client, MY_IP, 1111)
    asyncio.get_event_loop().run_until_complete(start_server)
    asyncio.get_event_loop().run_forever()

  

Кажется, все работает нормально, и ошибок не возникает. Однако, когда я запускаю программу, print (ip_range) не отображается, что находится в пределах ‘async def port_scan ()’. Я думаю, что есть проблема с кодом в этом разделе. У кого-нибудь есть идеи, в чем может быть проблема и как ее исправить?

Комментарии:

1. Я думаю, что в вашем фрагменте не хватает некоторых важных строк, так как я не вижу, чтобы вы вызывали (использовали) port_scan где-либо в нем.

2. Правильно — это может быть проблемой. Я не могу поверить, что пропустил это! Спасибо за вашу помощь, я попробую это сейчас и посмотрю, сработает ли это для меня.