如何检测之前连接的SSL / TCP套接字上的Internet断开连接?

我有一个阻塞基于select()SSL_read()的线程。 主线程在需要时使用SSL_write()写入。 在unit testing期间,我发现了一个问题:

  • 客户端TCP套接字connect()到SSL上的服务器(TLS)
  • 一段时间后,禁用互联网
  • 在客户端TCP / SSL套接字上写一些数据

即使没有SSL_write()SSL_write()返回正确的写入字节数,而不是0或某些错误。 这种互联网断开是任意的,既不太高也不太低。

我的期望是,每当互联网断开连接时,套接字应该生成一些有趣的事件,这是可检测的,我将停止套接字+ SSL连接。
如果我必须建立一些客户端 – 服务器手工协议,那么这是可能的。

实现此类互联网检测的最佳方式是什么?
期望具有较少CPU周期和较少客户端服务器通信的解决方案。 我确信,这不是一个非常特殊的问题,因此必须先解决。

[PS:客户端套接字在Android和iOS等移动平台上开放,但我想知道一般解决方案。]

这是套接字的一般问题。 您无法获得经过认证的交付。 如果您想知道交易对手是否确实可以到达,您必须自己实施某种听力测试。

通常,成功写入套接字并不表示另一端的接收器可用性。