2013-08-04 6 views
1

나는 초보자 해요, 난 (레디 스 이벤트 루프를 사용하여) 코드 hereHTTP 서버

을 테스트하려고했다하지만 난 127.0.0.1:8000에 요청을하기 위해선, 서버 응답을 보내지 않으면 응답하지 않습니다. 몇 가지 변경해야합니까? 예제가 의도 한대로 되풀이 될 요청이 필요합니다.

답변

1

왜이 제품이 HTTP 서버라고 생각하십니까? 그렇지 않습니다. 깨진 TCP 에코 서버입니다.

쓰기 작업이 이벤트 루프의 제어를받지 않기 때문에 깨졌습니다. 비 블록 기입 조작이 모든 바이트를 송신 할 수없는 경우 (그러한 보증이없는 경우) 일부 바이트는 유실됩니다. 당신이 적절한 클라이언트를 사용하는 경우

이제,이 프로그램은 아직 입증 할 수 있습니다

$ telnet 127.0.0.1 8000 
Trying 127.0.0.1... 
Connected to 127.0.0.1. 
Escape character is '^]'. 
toto 
toto 
titi 
titi 
tutu 
tutu 

... while the output of the program itself is: 

Accepted 127.0.0.1:48645 

당신이 이벤트 루프로 재생하려면, 나는 것 다음 목록 중에서 하나를 따기 좋습니다. 그들은

... 아마 훨씬 더 문서화 GitHub의에서 처음으로 발견 된 임의 AE 해킹보다