SSL数据读写传输速率在Server中高效管理

时间:2017-02-02 12:15:26

标签: c# ssl encryption server client

如何有效控制数据写入和读取? 要么 降低读/写速度的可能原因是什么? 我的代码中有错误吗? 目前它很慢。

我正在使用以下代码:

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

1 个答案:

答案 0 :(得分:0)

在dataStream和sslStream之间添加一个缓冲区

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

这将导致SslStream的输出缓冲(默认缓冲区大小为4096字节)输出到套接字的数据流,因此更有效地发送更大的数据块。