使用SslStream在TLS会话上向客户端发送close-notify

时间:2012-06-27 21:46:25

标签: c# sockets .net-4.0 ssl

我正在尝试使用TcpListener通过SSL创建自定义FTP服务器。

关闭连接时,客户端会生成错误,因为当套接字关闭时,不会发送close-notify警报。在.NET TLS实现中不考虑我已阅读的内容。

将此行为添加到我的服务器的最佳方法是什么。如何发送此提醒?将字符串写入SSL流或包装流是否很简单。

如果有人能指出我正确的方向,我将不胜感激。

由于

2 个答案:

答案 0 :(得分:2)

我发现SslStream只是不支持这个,所以我现在看到的唯一选择是手动发送它。这就是我所说的"手动日落"。

我发布了我的代码here(因为它是最早提到的我能找到的问题)。请看看并告知它是否对您有所帮助。

我希望微软有时间在下一版本的框架中修复它。

答案 1 :(得分:1)

如果您是先关闭套接字,那么当您关闭套接字时,SSL层将自动发送

close-notify。如果您是收到EOS的最终结果,那么您的回复结束,RFC 2246允许close-notify不作为回复发送。

你不能自己发送。