In this Python code, which line actually reads the data:

5 phương ánCó giải thích
Đề bài
import socket

mysock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
mysock.connect(('data.pr4e.org', 80))
cmd = 'GET http://data.pr4e.org/romeo.txt HTTP/1.0\n\n'.encode()
mysock.send(cmd)

while True:
    data = mysock.recv(512)
    if (len(data) < 1):
        break
    print(data.decode())
mysock.close()

Các phương án trả lời

Chọn một phương án
Lời giảiChọn phương án để mở
Đáp án đúng: "mysock.recv()". Lần theo mã: lời gọi recv(512) nhận tối đa 512 byte từ kết nối và trả về bytes, đó là chỗ dữ liệu thật sự được đọc; vòng while lặp lại cho tới khi recv trả về dữ liệu rỗng (độ dài nhỏ hơn 1), nghĩa là máy chủ đã đóng kết nối, và mỗi khối nhận được được decode rồi in ra. "socket.socket()" chỉ tạo đối tượng socket, với AF_INET là IPv4 và SOCK_STREAM là TCP, chưa kết nối hay đọc gì. "mysock.connect()" mở kết nối TCP tới data.pr4e.org ở cổng 80, mới là bước thiết lập đường truyền. "mysock.send()" gửi yêu cầu GET đã được mã hoá thành bytes tới máy chủ, là chiều đi chứ không phải đọc. "mysock.close()" đóng kết nối sau khi đã đọc xong, giải phóng tài nguyên.

Cùng phần 3

Xuất hiện trong 1 bộ đề