파이썬 'Asynchat'채팅 서버 - 클라이언트가 서버가 올라갈 때까지 기다리게합니다.

StackOverflow https://stackoverflow.com//questions/24058686

  •  26-12-2019
  •  | 
  •  

문제

Python에서 Asynchat 모듈을 사용하여 간단한 채팅 서버를 만들었습니다.내 의도는 채팅 클라이언트가 서버가 서버를 올리고 실행할 때까지 기다리는 것입니다.

True에 연결된 설정으로 handle_connect_event를 사용 하여이 작업을 수행했습니다.

def handle_connect_event(self):
        self.connected = True
.

Connect 명령이 true가 될 때까지 연결 명령을 루핑합니다.

while not self.connected:
    try:
        self.connect((host, port))
    except:
         time.sleep(1)
.

ASYNCORE Dispatcher 코드에서 연결이 성공하면 handle_connect_event가 호출됩니다.

def connect(self, address):
    self.connected = False
    err = self.socket.connect_ex(address)
    # XXX Should interpret Winsock return values
    if err in (EINPROGRESS, EALREADY, EWOULDBLOCK):
        return
    if err in (0, EISCONN):
        self.addr = address
        self.handle_connect_event()
    else:
        raise socket.error(err, errorcode[err])
.

그래서 Connection이 만들어지면 handle_connect_event의 코드를 트리거해야하므로 연결되어 True에 연결되어 내 루프가 끊어집니다.그러나 이것은 일어나지 않습니다.

아무도 그 이유를 알고 있습니까?그리고이 방법이 잘못된 경우 채팅 클라이언트가 서버를 기다리는 방법은 무엇입니까?

나는이 일들을 새로운 것입니다. 그래서 나는 명심하시기 바랍니다. 나는 초보자입니다 :)

도움이 되었습니까?

해결책

나는 내 기계가 잠시 미쳤다고 생각하지만 내 코드는 작동합니다 :) 2 클라이언트 시스템을 시작한 다음 서버를 실행하고 작업을 수행 할 수 있습니다.

최고의 느낌!:)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top