아핫뉴스실시간 인기검색어
아핫뉴스 화산 이미지
화산 아이콘 11
이혜훈 제명 방침
아하

생활

생활꿀팁

단정한박쥐34
단정한박쥐34

파이썬으로 소켓 통신하는데 재연결을 어떻게 해야할까요?

파이썬으로 소켓 통신하는 코드를 만들어보고 있습니다

def connect(self, ip, port):
retryCount = 0
retry = True
while(retry):
try:
print ('Connect Server')
self.socket.connect( (str(ip), int(port)) )
retry = False
return 1
except:
print ('Fail')
print ('retry after ')
retry = True

소켓 연결과 관련된 코드 부분입니다

통신이 끊기면 except로 가서 코드가 죽지는 않는데 재연결을 못하고 몇시간을 except만 무한반복합니다

어떻게 해야 다시 연결을 할 수가 있나요?

    1개의 답변이 있어요!
    • 수줍은이구아나17
      수줍은이구아나17

      해결방법이 있네요 connect () 메서드를 while 루프 내에 놓고 try-except 문으로 둘러싼 후, 연결이 성공하면 응용 프로그램은 나머지 스크립트로 계속 진행합니다. 그렇지 않으면 몇 초 후에 다시 연결을 시도합니다.

      print( "connection lost... reconnecting" ) connected = False #recreate socket clientSocket = socket.socket() while not connected: #attempt to reconnect, otherwise sleep for 2 seconds try: clientSocket.connect( ( host, port ) ) connected = True print( "re-connection successful" ) except socket.error: sleep( 2 ) #continue normal operations

      https://instructobit.com/tutorial/101/Reconnect-a-Python-socket-after-it-has-lost-its-connection