JavaScript is required

Cho đoạn lệnh:

TcpListener S1 = new TcpListener(IPAddress.Any, 9050);

S1.Start();

TcpClient S2 = S1.AcceptTcpClient();

Những mệnh đề nào sau đây là đúng? (chọn một hoặc nhiều)

A.

Dữ liệu được gửi qua S1 và nhận qua S2

B.

Đoạn lệnh trên có thể dùng cho phía client trong mô hình TCP Client/Server

C.

Process hiện tại sẽ chờ kết nối từ cổng 9050

D.

Đoạn lệnh trên có thể dùng cho phía server trong mô hình TCP Client/Server

Trả lời:

Đáp án đúng: C


Đoạn mã C# này thể hiện một phần của quá trình thiết lập kết nối TCP server. * **`TcpListener S1 = new TcpListener(IPAddress.Any, 9050);`**: Dòng này khởi tạo một `TcpListener` (S1) để lắng nghe các kết nối đến trên tất cả các địa chỉ IP của máy (IPAddress.Any) và cổng 9050. * **`S1.Start();`**: Dòng này bắt đầu lắng nghe các kết nối đến. * **`TcpClient S2 = S1.AcceptTcpClient();`**: Dòng này chấp nhận một kết nối TCP client đến. Lưu ý rằng luồng (thread) hiện tại sẽ bị chặn (block) tại dòng này cho đến khi có một client kết nối đến. Phân tích các lựa chọn: * **A. Dữ liệu được gửi qua S1 và nhận qua S2**: Sai. `S1` là `TcpListener`, nó chỉ lắng nghe và chấp nhận các kết nối. Dữ liệu thực tế được gửi và nhận thông qua đối tượng `TcpClient` (S2) sau khi kết nối được thiết lập. * **B. Đoạn lệnh trên có thể dùng cho phía client trong mô hình TCP Client/Server**: Sai. Đoạn lệnh này sử dụng `TcpListener` và `AcceptTcpClient()`, là các thành phần phía server sử dụng để lắng nghe và chấp nhận kết nối từ client. * **C. Process hiện tại sẽ chờ kết nối từ cổng 9050**: Đúng. Lệnh `S1.AcceptTcpClient()` sẽ làm cho process hiện tại tạm dừng và chờ đợi một kết nối đến cổng 9050. * **D. Đoạn lệnh trên có thể dùng cho phía server trong mô hình TCP Client/Server**: Đúng. Đoạn lệnh này thể hiện các bước cơ bản để thiết lập một TCP server: tạo listener, bắt đầu lắng nghe, và chấp nhận kết nối. Vậy, các đáp án đúng là C và D.

Câu hỏi liên quan