#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. Правильно — это может быть проблемой. Я не могу поверить, что пропустил это! Спасибо за вашу помощь, я попробую это сейчас и посмотрю, сработает ли это для меня.