可以提升ssl半关闭套接字吗?

时间:2017-07-20 04:06:04

标签: c++ sockets ssl boost boost-asio

我有ssl-server和ssl-client。它与Boost ssl示例几乎相同。

现在,

服务器打开(监听)然后客户端加入并将数据发送到服务器。

发送数据时

使用socket_.lowest_layer().close();

关闭来自客户端的套接字

我希望将此更改为半关闭:发送关闭,读取打开

客户端应在半关闭前发送boost::asio::error::eof

然后服务器捕获boost::asio::error::eof并从服务器关闭套接字。

还有什么好事吗?和提升有一半关闭?

1 个答案:

答案 0 :(得分:1)

TCP半关闭(输出关闭)不能与SSL一起使用。 SSL发送close_notify,以便检测截断攻击,并在逻辑上关闭两个方向的SSL连接。如果您只是自己关闭底层TCP套接字,SSL会认为是截断攻击并使SSL连接无法使用。

我不明白为什么要改变你所描述的内容。 SSL已基本上使用close_notify