【发布时间】:2015-12-19 00:36:07
【问题描述】:
我正在尝试编写内部传输系统。 数据应该使用网络套接字从客户端传输到服务器。 除了处理网络问题外,它工作正常。 如果我在客户端和服务器之间放置防火墙,在双方我都不会看到任何错误,因此数据将继续填充客户端的内核缓冲区。 如果我此时重新启动应用程序,我将丢失缓冲区中的所有数据。
问题: 我们有什么方法可以检测网络问题吗? 我们有没有办法从内核缓冲区取回数据?
【问题讨论】:
我正在尝试编写内部传输系统。 数据应该使用网络套接字从客户端传输到服务器。 除了处理网络问题外,它工作正常。 如果我在客户端和服务器之间放置防火墙,在双方我都不会看到任何错误,因此数据将继续填充客户端的内核缓冲区。 如果我此时重新启动应用程序,我将丢失缓冲区中的所有数据。
问题: 我们有什么方法可以检测网络问题吗? 我们有没有办法从内核缓冲区取回数据?
【问题讨论】:
Node js 非常直接地向您公开了低级套接字 API。我假设您正在使用 TCP 套接字来发送和接收数据。
确保客户端和服务器之间存在活动连接的一种方法是来回发送心跳信号。如果您在发送数据时未能收到来自服务器的心跳,则可以认为连接失败。
至于您问题的第二部分:没有简单的方法可以从内核缓冲区取回数据。如果丢失数据会成为问题,我会确保将其写入磁盘。
【讨论】: