Flash 如何通过TCP套接字可靠地处理不稳定的连接?

Flash 如何通过TCP套接字可靠地处理不稳定的连接?,flash,actionscript-3,tcp,tcpsocket,Flash,Actionscript 3,Tcp,Tcpsocket,我正在构建一个通过TCP套接字与远程服务器对话的客户端。有时,客户端会将消息传递给服务器,或者服务器会将消息传递给客户端 这将在笔记本电脑上运行,因此连接将非常不稳定。他们可能会丢失wifi,他们可能会让笔记本电脑进入睡眠状态,然后在稍后将其唤醒,等等。我正在实施一个乒乓系统来检测连接丢失(都在同一个插座上。客户端乒乓,服务器乒乓) ping失败时我该怎么办?(或客户端发送一条从未确认的消息)我可以: 继续ping直到我得到ping回复 关闭套接字并重复尝试连接套接字,直到连接成功 选项1显然有

我正在构建一个通过TCP套接字与远程服务器对话的客户端。有时,客户端会将消息传递给服务器,或者服务器会将消息传递给客户端

这将在笔记本电脑上运行,因此连接将非常不稳定。他们可能会丢失wifi,他们可能会让笔记本电脑进入睡眠状态,然后在稍后将其唤醒,等等。我正在实施一个乒乓系统来检测连接丢失(都在同一个插座上。客户端乒乓,服务器乒乓)

ping失败时我该怎么办?(或客户端发送一条从未确认的消息)我可以:

  • 继续ping直到我得到ping回复
  • 关闭套接字并重复尝试连接套接字,直到连接成功
  • 选项1显然有点简单,但我不知道它是否能让我达到我想要的行为。如果服务器关闭了其连接端,会发生什么情况?此外,如果,比如说,笔记本电脑没有wifi连接,那么所有这些ping是否会排队,然后在它恢复wifi后一起发送?不确定我是否希望在每次有人重新连接时用数千次ping来敲打我的服务器


    客户端是用Flash编写的,因此没有太多的低级访问选项,如KEEP_ALIVE。

    为什么不能用自己指定的ping数据包ping套接字本身呢。如果失败了3次或超过5-10秒,考虑插座死掉,从两侧关闭并启动一个新的插座。Err,你需要在20秒内设置服务器超时,同时在刷新插座的同时10个客户端。是的,这已经是我自己的自定义“ping”。将客户端超时10秒,服务器超时20秒,如果旧套接字发生问题,则打开新套接字。