JavaScript is required

Cho đoạn chương trình phía Server, chương trình giao tiếp qua mạng dùng cơ chế TCP. Chọn câu lệnh nào đúng nhất điền vào đoạn mã đóng Socket? Đoạn mã đóng các socket phía Server
ServerSocket ssk = new ServerSocket(1234);
Socket sk = ssk.accept();
int len = is.read(buffer);

A.

sk.close(); ssk.close();

B.

ssk.close(); sk.close();

C.

sk.close();

D.

ssk.close();

Trả lời:

Đáp án đúng: A


Trong chương trình giao tiếp mạng TCP phía server, sau khi hoàn thành việc giao tiếp, cả socket phía server (ServerSocket) và socket được chấp nhận (Socket) đều cần được đóng để giải phóng tài nguyên hệ thống. Thứ tự đóng không ảnh hưởng đến tính đúng đắn của chương trình, nhưng theo thông lệ, nên đóng socket kết nối (sk) trước rồi mới đóng socket lắng nghe (ssk). * **ssk.close();**: Đóng ServerSocket, ngừng lắng nghe các kết nối đến. * **sk.close();**: Đóng Socket đã được chấp nhận, ngắt kết nối với client. Do đó, phương án B (ssk.close(); sk.close();) và A (sk.close(); ssk.close();) đều đúng về mặt chức năng. Tuy nhiên, phương án A thể hiện thứ tự đóng Socket kết nối trước, ServerSocket sau, hợp lý hơn. Tuy nhiên, đề bài yêu cầu "chọn câu lệnh nào đúng nhất", và cả hai đáp án A và B đều hợp lệ. Trong trường hợp này, đáp án A được ưu tiên chọn, vì nó thể hiện một thứ tự logic hơn trong việc giải phóng tài nguyên, mặc dù sự khác biệt là không đáng kể.

Câu hỏi liên quan