2017-02-02 19 views
5

Làm thế nào để kiểm soát dữ liệu ghi và đọc hiệu quả? HOẶC Lý do có thể làm giảm tốc độ đọc/ghi là gì? Có sai sót nào trong mã của tôi không? Hiện tại nó rất chậm.Tốc độ truyền dữ liệu đọc và ghi SSL quản lý hiệu quả trong Máy chủ

Tôi đang sử dụng mã dưới đây:

listener.BeginAcceptTcpClient(new AsyncCallback(AcceptCallback), listener); 
..... 
// Inside AcceptCallback() 
dataStream = client.GetStream(); 
sslStream = new SslStream(dataStream, true, new RemoteCertificateValidationCallback(ValidateCert)); 

sslStream.AuthenticateAsServer(serverCertificate); 
.... 
sslState.sslStream.BeginRead(buffer, 0, Length, StartSSLSession, sslState); 


// Inside StartSSLSession(IAsyncResult ar) 
sslStream.Write(responseBuffer); 
sslStream.Flush(); 

Xin vui lòng cho ý kiến ​​hoặc giải pháp ..

Ở đây tôi gắn liền hình ảnh của chiều dài hiện tại của dữ liệu chuyển từ client tới server. Điều này có thể tăng độ dài của dữ liệu khách hàng ..? enter image description here

Trả lời

0

Thêm một bộ đệm giữa Datastream và sslStream

dataStream = client.GetStream(); 
bufferedStream = new BufferedStream(dataStream); 
sslStream = new SslStream(bufferedStream, true, new RemoteCertificateValidationCallback(ValidateCert)); 

Điều này sẽ gây ra các SslStream để đệm (kích thước bộ đệm mặc định là 4096 byte) đầu ra để dòng dữ liệu của ổ cắm, và do đó gửi khối lớn hơn của dữ liệu hiệu quả hơn nhiều.

Các vấn đề liên quan