Trắc nghiệm Mạng máy tính Bài: Khái niệm về socket

Làm bài thi

Mục Lục

Trắc nghiệm Mạng máy tính Bài: Khái niệm về socket là một trong những đề thi thuộc Chương 5: LẬP TRÌNH SOCKET trong học phần Mạng máy tính chuyên ngành Công Nghệ Thông Tin cấp độ Đại học. Phần này là nền tảng cốt lõi của lập trình mạng, giúp sinh viên hiểu rõ cách các ứng dụng giao tiếp với nhau qua mạng thông qua khái niệm socket. Nắm vững socket là bước đầu tiên để xây dựng mọi loại ứng dụng mạng, từ duyệt web, gửi email cho đến các trò chơi trực tuyến.

Trong bài học này, người học cần nắm được các nội dung trọng tâm như: định nghĩa socket, mối quan hệ giữa socket và tầng giao vận (TCP/UDP), vai trò của địa chỉ IP và số cổng (port number) trong việc định danh socket, các loại socket (stream socket, datagram socket), các thao tác cơ bản của lập trình socket (tạo, liên kết, lắng nghe, chấp nhận, kết nối, gửi, nhận, đóng). Việc hiểu rõ các kiến thức này sẽ là nền tảng vững chắc để thiết kế, triển khai và bảo trì các ứng dụng mạng phức tạp.

Hãy cùng Dethitracnghiem.vn tìm hiểu về đề thi này và tham gia làm kiểm tra ngay lập tức!

Trắc nghiệm Mạng máy tính Bài: Khái niệm về socket

Câu 1.Khái niệm “socket” trong lập trình mạng ám chỉ điều gì?
A. Một loại cáp mạng vật lý.
B. Một giao thức mạng.
C. Một địa chỉ IP.
D. Một điểm cuối của liên kết truyền thông, cho phép ứng dụng gửi và nhận dữ liệu qua mạng.

Câu 2.Một socket được định danh duy nhất bởi sự kết hợp của những thông tin nào?
A. Địa chỉ MAC và số cổng.
B. Tên miền và số cổng.
C. Địa chỉ IP và địa chỉ MAC.
D. Địa chỉ IP và số cổng (Port Number).

Câu 3.Socket loại “Stream Socket” (dòng) thường được sử dụng với giao thức tầng giao vận nào?
A. UDP (User Datagram Protocol).
B. ICMP (Internet Control Message Protocol).
C. ARP (Address Resolution Protocol).
D. TCP (Transmission Control Protocol).

Câu 4.Socket loại “Datagram Socket” (gói dữ liệu) thường được sử dụng với giao thức tầng giao vận nào?
A. TCP (Transmission Control Protocol).
B. HTTP (Hypertext Transfer Protocol).
C. FTP (File Transfer Protocol).
D. UDP (User Datagram Protocol).

Câu 5.Ưu điểm chính của Stream Socket (TCP) là gì?
A. Nhanh chóng và không đáng tin cậy.
B. Không yêu cầu thiết lập kết nối.
C. Overhead thấp.
D. Cung cấp kết nối đáng tin cậy, có thứ tự và không mất mát dữ liệu.

Câu 6.Ưu điểm chính của Datagram Socket (UDP) là gì?
A. Đảm bảo gửi dữ liệu đúng thứ tự.
B. Tích hợp điều khiển tắc nghẽn.
C. An toàn hơn trong truyền tải.
D. Nhanh chóng, overhead thấp và không yêu cầu thiết lập kết nối.

Câu 7.Trong mô hình client-server sử dụng socket, bên client thường gọi hàm socket nào để bắt đầu thiết lập kết nối đến server?
A. `bind()`
B. `listen()`
C. `accept()`
D. `connect()`

Câu 8.Trong mô hình client-server sử dụng socket, bên server thường gọi hàm socket nào để gán một địa chỉ và cổng cho socket của nó?
A. `connect()`
B. `listen()`
C. `accept()`
D. `bind()`

Câu 9.Sau khi gọi `bind()`, server sẽ gọi hàm socket nào để đặt socket vào trạng thái sẵn sàng chấp nhận các kết nối đến?
A. `connect()`
B. `send()`
C. `recv()`
D. `listen()`

Câu 10.Khi một client gửi yêu cầu kết nối đến một server đã ở trạng thái `listen()`, server sẽ gọi hàm socket nào để chấp nhận kết nối đó và tạo một socket mới để giao tiếp với client riêng biệt?
A. `bind()`
B. `listen()`
C. `send()`
D. `accept()`

Câu 11.Số cổng (Port Number) có giá trị từ 0 đến 1023 được gọi là gì và thường dành cho dịch vụ nào?
A. Cổng động, dành cho client.
B. Cổng riêng, dành cho server.
C. Cổng tạm thời, dành cho mọi ứng dụng.
D. Cổng nổi tiếng (Well-known Ports), dành cho các dịch vụ chuẩn (HTTP, FTP, DNS).

Câu 12.Khi một client tạo một socket để kết nối đến server, nó thường được gán một số cổng nào?
A. Luôn là cổng 80.
B. Luôn là cổng 443.
C. Một cổng cố định được định nghĩa trước.
D. Một cổng tạm thời (Ephemeral Port) được hệ điều hành cấp phát ngẫu nhiên.

Câu 13.Địa chỉ `127.0.0.1` (hoặc `localhost`) được sử dụng trong lập trình socket để làm gì?
A. Để kết nối với một máy chủ từ xa.
B. Để kết nối đến bất kỳ địa chỉ IP nào.
C. Để chỉ định một kết nối không dây.
D. Để kết nối đến chính máy tính cục bộ đó.

Câu 14.Hàm nào trong lập trình socket được sử dụng để gửi dữ liệu qua một socket đã kết nối?
A. `recv()`
B. `close()`
C. `listen()`
D. `send()` (hoặc `write()`)

Câu 15.Hàm nào trong lập trình socket được sử dụng để nhận dữ liệu từ một socket đã kết nối?
A. `send()`
B. `connect()`
C. `bind()`
D. `recv()` (hoặc `read()`)

Câu 16.Nếu một ứng dụng sử dụng Datagram Socket (UDP) để gửi dữ liệu, nó sẽ gọi hàm nào để gửi gói tin?
A. `send()`
B. `sendto()`
C. `write()`
D. `sendto()` (vì cần chỉ định địa chỉ đích cho mỗi datagram)

Câu 17.Nếu một ứng dụng sử dụng Datagram Socket (UDP) để nhận dữ liệu, nó sẽ gọi hàm nào để nhận gói tin?
A. `recv()`
B. `read()`
C. `accept()`
D. `recvfrom()` (vì cần biết gói tin đến từ địa chỉ nào)

Câu 18.Sau khi hoàn thành việc giao tiếp, điều gì là quan trọng nhất cần làm với một socket?
A. Khởi động lại máy tính.
B. Thay đổi địa chỉ IP.
C. Gửi một bản tin cuối cùng.
D. Đóng socket (`close()` hoặc `shutdown()`) để giải phóng tài nguyên.

Câu 19.Trong trường hợp lỗi “Connection refused” (Kết nối bị từ chối) khi client cố gắng kết nối, điều gì có thể là nguyên nhân?
A. Địa chỉ IP của client bị sai.
B. Client đang sử dụng sai cổng.
C. Client không có kết nối Internet.
D. Server không chạy, không lắng nghe trên cổng đó, hoặc tường lửa chặn kết nối.

Câu 20.Khái niệm “socket pair” (cặp socket) trong TCP/IP ám chỉ điều gì?
A. Hai socket trên cùng một máy tính.
B. Hai socket của cùng một ứng dụng.
C. Hai socket được kết nối với nhau bằng cáp.
D. Sự kết hợp của địa chỉ IP nguồn, cổng nguồn, địa chỉ IP đích và cổng đích, định danh duy nhất một kết nối TCP.

Câu 21.Socket có thể được sử dụng để giao tiếp giữa các tiến trình trên cùng một máy tính không?
A. Không, chỉ giữa các máy tính khác nhau.
B. Chỉ khi các máy tính đó ở cùng mạng LAN.
C. Chỉ khi sử dụng giao thức UDP.
D. Có, thông qua địa chỉ loopback (127.0.0.1) hoặc Unix domain sockets.

Câu 22.Lớp Socket API (Application Programming Interface) là gì?
A. Một giao thức mạng.
B. Một phần mềm trình duyệt web.
C. Một thiết bị phần cứng.
D. Một tập hợp các hàm và thư viện được cung cấp bởi hệ điều hành để lập trình viên có thể tạo và quản lý socket.

Câu 23.Mô hình nào sau đây thường được sử dụng trong lập trình socket để một server có thể xử lý nhiều client cùng lúc?
A. Mô hình đơn luồng, đơn tiến trình.
B. Mô hình Peer-to-Peer.
C. Mô hình lặp lại (Iterative Server).
D. Mô hình đa luồng (Multi-threaded) hoặc đa tiến trình (Multi-process) / Event-driven (Asynchronous Server).

Câu 24.Nếu bạn muốn xây dựng một ứng dụng chat thời gian thực yêu cầu độ trễ thấp và chấp nhận một số mất mát dữ liệu nhỏ, bạn nên chọn loại socket nào?
A. Stream Socket (TCP).
B. Raw Socket.
C. Unix Domain Socket.
D. Datagram Socket (UDP).

Câu 25.Khi một server gọi `accept()`, nó đang chờ đợi sự kiện nào?
A. Một client gửi dữ liệu.
B. Một client đóng kết nối.
C. Một client yêu cầu một tài nguyên.
D. Một client mới cố gắng thiết lập kết nối TCP với nó.

×

Bạn ơi!!! Để xem được kết quả
bạn vui lòng làm nhiệm vụ nhỏ xíu này nha

LƯU Ý: Không sử dụng VPN hoặc 1.1.1.1 khi vượt link

Bước 1: Mở tab mới, truy cập Google.com

Bước 2: Tìm kiếm từ khóa: Từ khóa

Bước 3: Trong kết quả tìm kiếm Google, hãy tìm website giống dưới hình:

(Nếu trang 1 không có hãy tìm ở trang 2, 3, 4... nhé )

Bước 4: Cuộn xuống cuối bài viết rồi bấm vào nút GIỐNG HÌNH DƯỚI và chờ 1 lát để lấy mã: