2017-02-02 1 views
5

Как эффективно управлять записью и чтением данных? OR Какова возможная причина уменьшения скорости чтения/записи? Есть ошибки в моем коде? В настоящее время это очень медленно.Эффективность передачи данных на чтение и запись данных SSL на сервере

Я использую ниже код:

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(); 

Пожалуйста, дайте предложения или решения ..

Здесь я прикрепил изображение текущей длины передачи данных от клиента к серверу. Возможно ли увеличить длину клиентских данных ..? enter image description here

ответ

0

Добавить буфер между DATASTREAM и sslStream

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

это вызовет выход SslStream в буфер (размер буфера по умолчанию составляет 4096 байт) выводится в поток данных сокета, и поэтому посылать большие массивы данных гораздо более эффективно.