StreamRequestHandler 实例对象中对 self.rfile,self.wfile 的读写操作和对 self.connect 进行 recv,write 操作有何区别?

2016-10-29 23:23:55 +08:00
 hazard
版本:Python2.7 谢谢解答!
4037 次点击
所在节点    问与答
3 条回复
sivacohan
2016-10-30 01:34:52 +08:00
rfile 和 wfile 都是一个封装。
rfile 可以试用 readline
wfile 写入没缓冲区

猜测,如果都是用 byte 差别不大。如果处理的是文本型数据, rfile , wfile 能方便点。
jigloo
2016-10-30 01:37:59 +08:00
大兄弟, python 的那套传统标准库都是玩具级的,如果不是工作任务不值得深究。

推荐你看新一点的 asyncio 或 gevent/tornado 。
sivacohan
2016-10-30 01:48:30 +08:00
我猜测没有错。
关于 rfile 和 wfile 都是通过 makefile 来实现的。
https://hg.python.org/cpython/file/2.7/Lib/SocketServer.py#l702

makefile 在这里
https://hg.python.org/cpython/file/tip/Lib/socket.py#l218

而在 tcpserver 里面的 connection 对象,实际上就是一个 socket

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/316504

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX