LINUX.ORG.RU

нет ответа после проверки socket подключения

 , ,


1

1

есть простое приложение на fastapi с одним запросом:

app = FastAPI()

@app.get("/check/{host}/{user}/{password}")
def read_item(host: str, user: str, password: str):
    if host.split(':') is None:
        return False

    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
                
    try:
        s.connect((host.split(':')[0], int(host.split(':')[1])))
    except socket.error as e:
        return {'result':'down'}
    finally:
        s.shutdown(socket.SHUT_RDWR)
        s.close()

    c = PyFreeRDP(host, user, password)
    return {'result': c.connect()}


Так вот ответа никак не получить, не могу понять в чем проблема, дальше чем s.connect ничего не происходит

★★★

Последнее исправление: noname_user (всего исправлений: 1)

    except socket.error as e:
        return {'result':'down'}

не могу понять в чем проблема

буду оригинален, предложу применить метод отладки

t184256 ★★★★★
()

Происходит видимо ожидание соединения, после таймаута придёт в ветку с исключением.

pon4ik ★★★★★
()
Ответ на: комментарий от noname_user

Ну типа того. Я х3 какой дефолтный таймаут в твоей системе, можно примерно прикинуть.

В общем и целом, делают обычно асинхронный коннект и таймаут сами задают.

pon4ik ★★★★★
()
Ответ на: комментарий от pon4ik

сделал таймаут 1 сек, вроде канает с:

except socket.timeout as e:

noname_user ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.