Không chắc chắn nếu có ai quan tâm vì điều này quá cũ nhưng tôi cần làm chỉ trong tuần này và không thể tìm thấy bất kỳ thứ gì trên internet đáp ứng nhu cầu của tôi. Có lẽ có cái gì đó mới trong khung làm điều này mà tôi không thể tìm thấy ... Bất kể, tôi sẽ đăng mã nguồn nhưng vì tôi đã viết nó cho công ty của tôi và họ có xu hướng cau mày, tôi sẽ phác thảo cách tiếp cận tôi mất:
Vì SslStream lấy một luồng trong hàm tạo, nên tôi đã triển khai kiểu con Stream riêng của mình với một MemoryStream bên dưới để đọc và một cho ghi. Tôi cũng truyền TcpClient cho đối tượng này.
Tôi đã sử dụng TcpClient để bắt tay để thiết lập kết nối SSL. Sau khi xác thực máy chủ hoặc máy khách tùy thuộc vào cách tôi đang sử dụng nó, sau đó tôi sử dụng hai MemoryStream của mình để đọc/ghi SslStream.
Vì vậy, đối với Async viết, trước tiên tôi viết trọng tải của mình lên SslStream để điền vào MemoryStream của tôi để ghi dữ liệu được mã hóa. Với dữ liệu được mã hóa từ MemoryStream, tôi điền vào bộ đệm SocketAsyncEventArgs và gọi phương thức TcpClient SendAsync. Đối với lần đọc, nó hoàn toàn ngược lại.
Tôi không thể nói nó đặc biệt kích thích tôi để di chuyển dữ liệu như vậy nhưng miễn là bạn không để cho các đối tượng MemoryBuffer của bạn được phân bổ lại liên tục, nó không phải là vấn đề hiệu suất. Ít nhất theo cách này, tôi chỉ có thể sử dụng khung công tác và mã của riêng tôi mà không cần dựa vào phần mềm của bên thứ ba.
John bạn có nhận được thêm thông tin về điều này không? – Dreaddan