我在 Raspberry Pi3 上运行的 c++ 客户端和在 Centos7 上使用 Php7 运行的 ReactPHP 服务器之间遇到套接字中断。请参阅以下内容:
- 客户端使用 TLS over TCP 在端口 1337 上创建到服务器的套接字连接。
- 客户端能够将数据写入服务器。
- 服务器能够将数据写入客户端。
- Tshark 在两台机器上都运行,过滤器只针对端口 1337,并看到了这个初始通信。
- 在接下来的一个小时内没有发生通信,两台机器上的 Tshark 都确认没有发生通信。
- 客户端或服务器都没有收到关闭的连接,并认为连接仍然打开。
- 然后服务器尝试向客户端写入更多数据,Tshark 看到服务器线路上的传输,但 Tshark 没有看到客户端线路上的传输,显然客户端没有响应。
- 如果客户端守护程序随后关闭,则服务器会感知到连接已关闭。
- 如果随后关闭服务器守护程序而不是客户端守护程序,则客户端不会感知到连接已关闭。
php.ini 将 default_socket_timeout 显示为 60 秒,并且更改该值似乎没有任何影响。
是什么导致了这种情况,我该如何预防?
谢谢