PY4E的原始代码:
import socket
import time
HOST = 'data.pr4e.org'
PORT = 80
mysock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
mysock.connect((HOST, PORT))
mysock.sendall(b'GET http://data.pr4e.org/cover.jpg HTTP/1.0\n\n')
count = 0
picture = b""
while True:
data = mysock.recv(5120)
if (len(data) < 1): break
time.sleep(0.25)
count = count + len(data)
print(len(data), count)
picture = picture + data
mysock.close()
# Look for the end of the header (2 CRLF)
pos = picture.find(b"\r\n\r\n")
print('Header length', pos)
print(picture[:pos].decode())
# Skip past the header and save the picture data
picture = picture[pos+4:]
fhand = open("stuff.jpg", "wb")
fhand.write(picture)
fhand.close()
我的问题不多了:
picture=b''
pos
是什么意思? [pos+4:]
中picture=picture[pos+4:]
的内容是什么?答案 0 :(得分:0)
的意思是什么
picture=b''
这是将picture
变量设置为空字节数组,稍后将添加该数组。
pos
是什么?
在pos = picture.find(b"\r\n\r\n")
中,代码正在查找图片数据之前的HTTP标头的末尾。
[pos+4:]
中picture=picture[pos+4:]
的内容是什么?
上面的评论解释了它,它“跳过标题”来获取图片数据。
如何查看图像?
在这两行中,
fhand = open("stuff.jpg", "wb")
fhand.write(picture)
图片保存到标题为stuff.jpg
的文件中,您应该可以双击文件管理器将其打开。