파이썬 'Asynchat'채팅 서버 - 클라이언트가 서버가 올라갈 때까지 기다리게합니다.
문제
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 클라이언트 시스템을 시작한 다음 서버를 실행하고 작업을 수행 할 수 있습니다.
최고의 느낌!:)
제휴하지 않습니다 StackOverflow