반응형
Python
Socket 을 이용한 방법
hello-bryan.service.com:8080 으로 통신해야할 일이 있을 때, 우선 접속이 가능한지 체크해보는 방법입니다.
아래와 같은 메소드를 정의해 두고,
result = is_connectable('hello-bryan.service.com', '8080')
# result = True or False
def is_connectable(ip, port):
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(1)
try:
s.connect((ip, int(port)))
s.shutdown(socket.SHUT_RDWR)
return True
except:
return False
finally:
s.close()
성공하게되면 시간은 (네트워크 환경에 따라 약간의 차이가 있겠지만) 1ms~2ms 정도 걸립니다.
연결에 실패하게 되면 timeout 으로 설정한 시간만큼 지연됩니다.
위의 예제에서는 timeout 을 1로 했기 때문에, 연결이 안되는 url 로 요청을 했을 경우 1초 후 False 를 리턴합니다.
경우에 따라 사용하면 됩니다.
"A 링크가 안되면 B 링크를 사용해라" 라든가..
728x90
반응형
'Python' 카테고리의 다른 글
[Python] 파일 확장자 가져오기 (get file extension) (0) | 2022.11.14 |
---|---|
[Python] exception 메시지 자세히 출력하기 (Traceback) (0) | 2022.10.25 |
[Python] 현재 날짜 포멧 출력하기 (0) | 2022.08.22 |
[Python] 실행시간 체크하기. decorator 사용하기 (0) | 2022.08.13 |
[Python] PIL.Image 를 byte array 로 변환 (0) | 2022.06.20 |
댓글