Python文件对象有一个read方法,它接受一个可选的size参数,这个参数基本上是要返回的最大字节数。例如:fname = "message.txt"
open(fname, "w").write("Hello World!")
print open(fname).read() # prints the entire file contents
print open(fname).read(5) # print "Hello"
print open(fname).read(99) # prints "Hello World!"
因此,即使我们的文件少于99个字符,对read(99)的调用也会立即返回所有可用数据。
我想对从socket.makefile返回的文件对象执行此行为。但如果我说:import socket
ADDR = ("localhost", 12345)
listener = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
listener.bind(ADDR)
listener.listen(1)
client = socket.create_connection(ADDR)
cf = client.makefile("r+b", bufsize=0)
server, client_addr = listener.accept()
sf = server.makefile("r+b", bufsize=0)
sf.write("Hello World!