socketserver를 사용하여 TCP로 클라이언트에 이미지를 보내는 간단한 서버를 만들려고합니다. 먼저 카탈로그를 클라이언트로 보낸 다음 요청으로 응답합니다.SocketServer - Python - ConnectionAbortedError로 무한 루프 송수신
mainServer = MainServer.MainServer((init.adresse, int(init.port)), MainServer.MainHandler)
때 : 나는 (그것이 다른 파일에 있어요) 내 서버를 만들려면이 줄을 사용 주에서
class MainHandler(socketserver.BaseRequestHandler):
def handle(self):
while 1:
try:
# Sending the catalogue
# Using my methods to get my catalogue with a HTTP header
response = self.server.genHTTPRequest(self.server.init.catalogue)
self.request.sendall(response.encode())
# Response of the client
self.data = self.request.recv(1024).decode()
if self.data:
print("Data received : {}".format(self.data))
except:
print("transmission error")
break;
: 내 서버의 핸들에서
,이 루프를 이 프로그램을 실행하면 클라이언트가 성공적으로 연결되어 카탈로그를 수신하지만 try/catch를 제외하고 일부 데이터 만 반환하고 프로그램은 점프합니다. 이self.data = self.request.recv(1024).decode()
ConnectionAbortedError: [WinError 10053] An established connection was aborted by the software in your host machine
내가, 어쩌면 동기화가 누락 문제 또는 내가 스레드를 사용해야 할 수도 있습니다 이해 안 함 : 시도/캐치하지 않으면이 오류가있어?
당신의 도움이(I 파이썬 3.3을 사용하고 있습니다)
연결이 재설정되고 있다고 생각합니다. 회선을 점검 (루프백) 해보십시오. 방화벽이나 바이러스 백신을 비활성화 할 수도 있습니다. – jary
답변 해 주셔서 감사합니다. 문제가 해결되었습니다. 클라이언트가 잘못된 정보를 보내고 recv에 문제가있어서 클라이언트가 연결을 끊었 기 때문입니다. 그건 그렇고, 나는이 프로젝트에 SocketServer를 사용하기로 결정했다. –