[Python-Dev] Questionable TCP server example (original) (raw)
Andrea Griffini agriff at tin.it
Thu Apr 23 09:21:11 CEST 2015
- Previous message (by thread): [Python-Dev] Committing into which branches?
- Next message (by thread): [Python-Dev] Questionable TCP server example
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
It's not the first time someone is confused by the server example of
https://docs.python.org/3/library/socketserver.html
where the receiving side is not making a loop over recv.
Moreover the documentation contains a misleading description of what really happens:
"The difference is that the readline() call in the second handler will call recv() multiple times until it encounters a newline character, while the single recv() call in the first handler will just return what has been sent from the client in one sendall() call."
Unless I'm missing something there's no way to know client side when all
data sent by "sendall" has been received (TCP stream protocol doesn't have
message boundaries) and the recv
based code doesn't handle neither
fragmentation nor clients that send more than 1024 bytes.
Am I missing something or that is indeed an example of how NOT to write a socket-based server?
Andrea -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20150423/dbaf9552/attachment.html>
- Previous message (by thread): [Python-Dev] Committing into which branches?
- Next message (by thread): [Python-Dev] Questionable TCP server example
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]