Trắc nghiệm Mạng máy tính Bài: Lập trình socket với ngôn ngữ C
25 câu · Đề ôn tập tổng hợp
Xem trước: đọc nhanh mọi câu dạng chữ, chưa tính giờ, chưa hiện đáp án. Luyện tập: chọn đáp án là biết đúng sai ngay, kèm lời giải. Thi thử: nộp bài mới chấm điểm và hiện lời giải.
Câu 1
Hàm `socket()` trong C dùng để làm gì?
Đáp án và lời giải
Đáp án: D
Câu 2
Đối số `type` trong hàm `socket()` được đặt là `SOCK_STREAM` khi bạn muốn sử dụng giao thức tầng giao vận nào?
Đáp án và lời giải
Đáp án: D
Câu 3
Đối số `type` trong hàm `socket()` được đặt là `SOCK_DGRAM` khi bạn muốn sử dụng giao thức tầng giao vận nào?
Đáp án và lời giải
Đáp án: D
Câu 4
Cấu trúc dữ liệu `struct sockaddr_in` trong lập trình socket C dùng để lưu trữ thông tin gì?
Đáp án và lời giải
Đáp án: D
Câu 5
Các hàm như `htons()` và `htonl()` trong lập trình socket C được sử dụng cho mục đích gì?
Đáp án và lời giải
Đáp án: D
Câu 6
Hàm `bind()` trong lập trình socket C dùng để làm gì?
Đáp án và lời giải
Đáp án: D
Câu 7
Nếu một server socket trong C sử dụng `INADDR_ANY` làm địa chỉ IP khi gọi `bind()`, điều đó có nghĩa là gì?
Đáp án và lời giải
Đáp án: D
Câu 8
Hàm `listen()` trong lập trình socket C có đối số `backlog` dùng để làm gì?
Đáp án và lời giải
Đáp án: D
Câu 9
Hàm `accept()` trong lập trình socket C dùng để làm gì trong vai trò server?
Đáp án và lời giải
Đáp án: D
Câu 10
Hàm `connect()` trong lập trình socket C dùng để làm gì trong vai trò client?
Đáp án và lời giải
Đáp án: D
Câu 11
Để gửi dữ liệu qua một socket TCP đã kết nối trong C, bạn sẽ sử dụng hàm nào?
Đáp án và lời giải
Đáp án: D
Câu 12
Để nhận dữ liệu qua một socket TCP đã kết nối trong C, bạn sẽ sử dụng hàm nào?
Đáp án và lời giải
Đáp án: D
Câu 13
Để gửi dữ liệu qua một socket UDP trong C, bạn sẽ sử dụng hàm nào?
Đáp án và lời giải
Đáp án: D
Câu 14
Để nhận dữ liệu qua một socket UDP trong C, bạn sẽ sử dụng hàm nào?
Đáp án và lời giải
Đáp án: D
Câu 15
Sau khi hoàn thành việc giao tiếp, hàm nào nên được gọi để đóng socket và giải phóng tài nguyên hệ thống?
Đáp án và lời giải
Đáp án: D
Câu 16
Khi một hàm socket trả về giá trị -1, điều đó thường có nghĩa là gì?
Đáp án và lời giải
Đáp án: D
Câu 17
Hàm `perror()` trong C được sử dụng để làm gì?
Đáp án và lời giải
Đáp án: D
Câu 18
Để một server C có thể xử lý nhiều client đồng thời, cách phổ biến nhất để tạo các tiến trình con là sử dụng hàm nào?
Đáp án và lời giải
Đáp án: D
Câu 19
Cờ `SO_REUSEADDR` thường được đặt cho server socket bằng hàm `setsockopt()`. Mục đích của nó là gì?
Đáp án và lời giải
Đáp án: D
Câu 20
Cấu trúc `struct sockaddr_in6` được sử dụng để lưu trữ thông tin địa chỉ cho phiên bản giao thức IP nào?
Đáp án và lời giải
Đáp án: D
Câu 21
Để chuyển đổi một địa chỉ IP dạng chuỗi (ví dụ: “192.168.1.1”) sang định dạng nhị phân trong cấu trúc địa chỉ socket, bạn sẽ sử dụng hàm nào?
Đáp án và lời giải
Đáp án: D
Câu 22
Để chuyển đổi một địa chỉ IP dạng nhị phân trong cấu trúc địa chỉ socket sang dạng chuỗi dễ đọc, bạn sẽ sử dụng hàm nào?
Đáp án và lời giải
Đáp án: D
Câu 23
Làm thế nào để bạn biết một socket TCP đã đọc hết dữ liệu từ bên đối diện và bên đó đã đóng kết nối?
Đáp án và lời giải
Đáp án: D
Câu 24
Nếu bạn muốn server tạo một luồng (thread) mới cho mỗi client kết nối thay vì một tiến trình (process) mới, bạn sẽ sử dụng hàm nào?
Đáp án và lời giải
Đáp án: D
Câu 25
Các tệp tiêu đề (header files) cơ bản nào là cần thiết cho hầu hết các chương trình lập trình socket trong C?