아하
검색 이미지
생활꿀팁 이미지
생활꿀팁생활
생활꿀팁 이미지
생활꿀팁생활
단정한박쥐34
단정한박쥐3419.01.24

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

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

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만 무한반복합니다

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

55글자 더 채워주세요.
답변의 개수
1개의 답변이 있어요!
  • 해결방법이 있네요 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