shajianrui <shajian...@126.com> added the comment:
Sorry for replying so late, and thank you very much for your reply and explanation. At first reply to you last post: I think at least in the non-unix environment, the CGIHTTPRequestHandler read the whole(expected) data from rfile and then transfer it to the CGI script. And considering the code for Unix environment, I dont think to set the rbufsize to -1 is a good idea. I prefer a safer way: to do a read() loop and read until nbytes received. It is much slower but more compatible. Like this: if self.command.lower() == "post" and nbytes > 0: #data = self.rfile.read(nbytes) #Original code at line 1199 databuf = bytearray(nbytes) datacount = 0 while datacount + 1 < nbytes: buf = self.rfile.read(self.request.getsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF)) #You can set your number. if len(buf) == 0: print("Connection closed before nbytes reached.") break for i in range(len(buf)): databuf[datacount] = buf[i] datacount += 1 if datacount == nbytes: break data = bytes(databuf) This code is only for explanation... Not for use... ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue37301> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com