在服务器中有效管理 SSL 数据读写传输速率
Posted
技术标签:
【中文标题】在服务器中有效管理 SSL 数据读写传输速率【英文标题】:SSL data read and write transfer rate managing efficiently in Server 【发布时间】:2017-06-19 12:18:40 【问题描述】:如何高效控制数据读写? 要么 降低读/写速度的可能原因是什么? 我的代码有什么错误吗? 目前速度很慢。
我正在使用以下代码:
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();
请给出建议或解决方案..
这里我附上了从客户端到服务器传输数据的当前长度的图像。这是否可以增加客户端数据的长度..?
【问题讨论】:
【参考方案1】:在 dataStream 和 sslStream 之间添加一个缓冲区
dataStream = client.GetStream();
bufferedStream = new BufferedStream(dataStream);
sslStream = new SslStream(bufferedStream, true, new RemoteCertificateValidationCallback(ValidateCert));
这将导致 SslStream 的输出到缓冲区(默认缓冲区大小为 4096 字节)输出到套接字的数据流,因此更有效地发送更大的数据块。
【讨论】:
以上是关于在服务器中有效管理 SSL 数据读写传输速率的主要内容,如果未能解决你的问题,请参考以下文章