Python Flask - проблема доступа к серверу

Создаю сервер flask на 55550 порту

  • брандмауэр выключил (win 10)

  • правило для портов создал (открыл в настройках винды Монитор брандмауэра-> Правило для входящих подключений)

  • антивирус штатный отключен, другого антивируса нет

  • этот порт через cmd -> netstat -aon никто не слушает и не использует

Если меняю порт, начинает работать какое-то время, потом по новой

if __name__ == '__main__':

    main()

    from argparse import ArgumentParser

    parser = ArgumentParser()
    parser.add_argument('-p', '--port', default=55550, type=int, help='port to listen on')
    args = parser.parse_args()
    port = args.port

    app.run(host='0.0.0.0', port=port)

Log

Traceback (most recent call last):
  File "C:/Users/Egor/YandexDisk/python/medoed/main.py", line 248, in <module>
    app.run(host='0.0.0.0', port=port)
  File "C:\Users\Egor\AppData\Local\Programs\Python\Python36-32\lib\site-packages\flask\app.py", line 841, in run
    run_simple(host, port, self, **options)
  File "C:\Users\Egor\AppData\Local\Programs\Python\Python36-32\lib\site-packages\werkzeug\serving.py", line 814, in run_simple
    inner()
  File "C:\Users\Egor\AppData\Local\Programs\Python\Python36-32\lib\site-packages\werkzeug\serving.py", line 774, in inner
    fd=fd)
  File "C:\Users\Egor\AppData\Local\Programs\Python\Python36-32\lib\site-packages\werkzeug\serving.py", line 666, in make_server
    passthrough_errors, ssl_context, fd=fd)
  File "C:\Users\Egor\AppData\Local\Programs\Python\Python36-32\lib\site-packages\werkzeug\serving.py", line 577, in __init__
    self.address_family), handler)
  File "C:\Users\Egor\AppData\Local\Programs\Python\Python36-32\lib\socketserver.py", line 453, in __init__
    self.server_bind()
  File "C:\Users\Egor\AppData\Local\Programs\Python\Python36-32\lib\http\server.py", line 136, in server_bind
    socketserver.TCPServer.server_bind(self)
  File "C:\Users\Egor\AppData\Local\Programs\Python\Python36-32\lib\socketserver.py", line 467, in server_bind
    self.socket.bind(self.server_address)
OSError: [WinError 10013] Сделана попытка доступа к сокету методом, запрещенным правами доступа

Думаю сделать просто перехват ошибки try except, и ставить другой порт, но костыль очень не хочется делать


Ответы (3 шт):

Автор решения: SmellyNS

Попробуйте запустить ваш сервер с правами администратора.

Возможно, проблема в том, что сокет можно сделать только с правами суперюзера/администратора.

→ Ссылка
Автор решения: svmitin

Попробуйте указать в качестве хоста свой IP

app.run(host='192.168.0.100', port=port)
→ Ссылка
Автор решения: eri

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

→ Ссылка