Cho đoạn mã:
data = new byte[1024]
recv = S.ReceiveFrom(data, ref remoteEP);
Để đoạn mã trên thực thi đúng, thì biến S phải đảm bảo điều gì? (Chọn câu đúng
nhất)
Trả lời:
Đáp án đúng: B
Đoạn mã sử dụng phương thức `ReceiveFrom`, đây là phương thức đặc trưng của UDP socket, dùng để nhận dữ liệu từ một địa chỉ IP và port cụ thể. TCP socket sử dụng phương thức `Receive` để nhận dữ liệu từ kết nối đã thiết lập. UDP không yêu cầu kết nối trước, do đó không cần gọi `Connect`. UDP cần khởi tạo, có thể cần `Bind` hoặc không. Trường hợp này không bắt buộc phải `Bind` vì socket có thể tự động gán port.
* **A. S là một TCP Socket, đã khởi tạo thành công:** Sai, vì TCP socket không dùng `ReceiveFrom`.
* **B. S là một UDP Socket, đã gọi phương thức Bind thành công:** Không hoàn toàn đúng, tuy nhiên `Bind` là không bắt buộc.
* **C. S là một TCP Socket, đã gọi phương thức Connect thành công:** Sai, vì TCP socket không dùng `ReceiveFrom`.
* **D. S là một UDP Socket, đã khởi tạo thành công:** Đúng, đây là điều kiện cần thiết để có thể gọi `ReceiveFrom`.
Vậy đáp án đúng nhất là D.