Các giải pháp lập trình CSharp- P58: Các giải pháp lập trình C# khảo sát chiều rộng của thư viện lớp .NET Framework và cung cấp giải pháp cụ thể cho các vấn đề thường gặp. Mỗi giải pháp được trình bày theo dạng “vấn đề/giải pháp” một cách ngắn gọn và kèm theo là các ví dụ mẫu. | 461 Chương 11 Lập trình mạng using using SharedComponent public class ClientHandler private TcpClient client private string ID public ClientHandler TcpClient client string ID client ID public void start Thu lấy network stream. Networkstream stream Tạo BinaryWriter để ghi ra stream. BinaryWriter w new BinaryWriter stream Tạo BinaryReader để đọc từ stream. BinaryReader r new BinaryReader stream if ID Connection completed. while ID Disconnect request received. else ID Could not complete connection. 462 Chương 11 Lập trình mạng Đóng socket. ID Client connection closed. Kế tiếp thay đổi mã lệnh của server sao cho nó lặp liên tục tạo ra các thể hiện ClientHandler mới khi cần và chạy chúng trong các tiểu trình mới. Dưới đây là mã lệnh đã được sửa đổi public class TcpServerTest private static void Main TcpListener listener new TcpListener 8000 Server About to initialize port. Server Listening for a connection. int clientNum 0 while true try Đợi yêu cầu kết nối và trả về một TcpClient. TcpClient client Server Connection accepted. Tạo một đối tượng mới để xử lý kết nối này. clientNum ClientHandler handler new ClientHandler client Client Khởi động đối tượng này làm việc trong 463 Chương 11 Lập trình mạng một tiểu trình khác. Thread handlerThread new Thread new ThreadStart true Bạn cũng có thể thêm Handler và HandlerThread vào một tập hợp để theo dõi các phiên client. catch Exception err Dưới đây là transcript phía server của một phiên làm việc .