나는 웹 서버를 구축하는 파이썬의 BaseHTTPRequestHandler 클래스를 사용하고 있습니다. WebSockets에 엔드 포인트를 추가하려고합니다. 이것은 내가 하나 하나 메시지를 처리 할 수 있도록 내가 (대신하면서 입력을 읽을 필요없이)을 받고있어 나는이 핸들러의 rfile에서 사용할 수 있습니다 무엇이든 읽을 필요가 있다는 것을 의미한다.파이썬, BaseHTTPRequestHandler : 어떻게 소켓에서 파일을 볼 수 있습니다 무엇을 읽을?
'읽기'(예 : 큰 버퍼를 사용하여 데이터를 더 적게 사용하면 데이터를 적게 사용한다고 가정하고 매개 변수가 없지만 EOF까지 읽는 것을 의미합니다) 그러나 이것을 작동시키지 못했습니다.
나는 두 가지 솔루션을 생각할 수 있습니다 : 하나 바이트를 읽어 :
(1) 읽기 호출합니다. 나는 버퍼링 의미 (예. 내가 바이트 읽기 당 콜을 원하지 않는 것)이 무엇인지 확실하지 않다 나는 오히려,이 작업을 수행 할 것입니다.
일시적으로 파일 비 차단, 그럼 다음 1 바이트의 읽기를 시도 후 차단하게, 데이터의 덩어리에 대한 읽기를 시도 할 수 있도록합니다. 이것은 다소 혼란스러워 보입니다. 내가 생각할 수있는 또 다른 옵션은 비 블로킹 소켓을 사용하는 것이지만, 현재의 스레드 된 프레임 워크에서는 그렇게 잘 작동하지 않는 것 같습니다.
어떤 아이디어라도 얻을 수있는 데이터를 얻으려면 어떻게해야합니까?