TAILIEUCHUNG - Lập trình Mạng Microsoft .NET Framework phần cuối

Bạn cần ghi dữ liệu ra network-stream từng khối một, mà không phải block phần mã lệnh còn lại. Kỹ thuật này có thể được sử dụng nếu bạn muốn “stream” một file lớn trên mạng. | Sử dụng TCP một cách bất đồng bộ Ÿ Bạn cần ghi dữ liệu ra network-stream từng khối một mà không phải block phần mã lệnh còn lại. Kỹ thuật này có thể được sử dụng nếu bạn muốn stream một file lớn trên mạng. Tạo một lớp riêng để xử lý kỹ thuật streaming bất đồng bộ. Bạn có thể bắt đầu stream một khối dữ liệu bằng phương thức và cung cấp một phương thức callback. Khi callback được kích hoạt thì gửi khối kế tiếp. Lớp Networkstream hỗ trợ việc sử dụng bất đồng bộ thông qua phương thức BeginRead và BeginWrite. Sử dụng các phương thức này bạn có thể gửi hay nhận một khối dữ liệu trên một trong các tiểu trình do thread-pool của bộ thực thi .NET cung cấp mà không block mã lệnh của bạn. Mục này trình bày kỹ thuật ghi bất đồng bộ. Khi gửi dữ liệu một cách bất đồng bộ bạn phải gửi dữ liệu nhị phân thô một mảng byte . Và bạn cần chọn kích thước mỗi lần gửi hay nhận. Ví dụ dưới đây viết lại server từ mục sao cho mỗi lớp ClientHandler gửi một lượng lớn dữ liệu được đọc từ một file. Dữ liệu này được gửi một cách bất đồng bộ nghĩa là ClientHandler có thể tiếp tục thực hiện các tác vụ khác trong ví dụ này nó chỉ việc lấy các thông điệp được gửi từ client . Một thuận lợi của cách tiếp cận này là toàn bộ nội dung của file chẳng bao giờ nằm trong bộ nhớ một lượt. Thay vào đó nó được thu lấy ngay trước khi một khối mới được gửi. Một thuận lợi khác nữa là server có thể hủy bỏ thao tác vào bất cứ lúc nào. Ví dụ nếu client chỉ đọc đến khối dữ liệu thứ ba thì ngắt kết nối server sẽ thiết lập một biến thành viên luận lý có tên là fileStop để báo cho callback không gửi dữ liệu nữa. Dưới đây là lớp ClientHandler đã được sửa đổi lớp TcpServerTest không cần thay đổi gì using System using using using using SharedComponent public class ClientHandler private TcpClient client private string ID Kích thước một khối dữ liệu 2 KB . private int bufferSize 2048 Bộ đệm dùng để chứa dữ liệu. private byte buffer Dùng để đọc dữ liệu từ

TAILIEUCHUNG - Chia sẻ tài liệu không giới hạn
Địa chỉ : 444 Hoang Hoa Tham, Hanoi, Viet Nam
Website : tailieuchung.com
Email : tailieuchung20@gmail.com
Tailieuchung.com là thư viện tài liệu trực tuyến, nơi chia sẽ trao đổi hàng triệu tài liệu như luận văn đồ án, sách, giáo trình, đề thi.
Chúng tôi không chịu trách nhiệm liên quan đến các vấn đề bản quyền nội dung tài liệu được thành viên tự nguyện đăng tải lên, nếu phát hiện thấy tài liệu xấu hoặc tài liệu có bản quyền xin hãy email cho chúng tôi.
Đã phát hiện trình chặn quảng cáo AdBlock
Trang web này phụ thuộc vào doanh thu từ số lần hiển thị quảng cáo để tồn tại. Vui lòng tắt trình chặn quảng cáo của bạn hoặc tạm dừng tính năng chặn quảng cáo cho trang web này.