我有一个 as3 serversocket,我们通过 java socket(一个 android 应用程序)连接到这个 serversocket。问题是,当 serversocket 应用程序强制关闭时,我无法找到一种方法来了解远程套接字已关闭或无法访问,除非尝试 flush() 一条消息到该套接字抛出管道损坏错误。我想以另一种方式解决这个问题的原因是不让服务器应用程序忙于连接检查消息?
最佳答案
TCP 连接不像河流那样连续不断地流动。它是在离散时间发送的一系列片段——因此更像是路上的汽车。因此,如果道路坏了,将无法收到通知,直到汽车试图到达另一端,但失败并给您回电。
您应该以合理的间隔(30 秒?)继续发送 cars,从而指示您的服务器在收到 NOOP 消息(No Operation 的缩写)时不执行任何操作。客户端将被编程为在连接空闲时开始发送 NOOP(30 秒内没有发送或接收消息),并且当驱动程序 回叫他无法到达目的地时,您关闭当前套接字并尝试创建另一个套接字。
关于java - 当远程套接字的设备关闭或应用程序强制关闭时,如何理解 java 远程套接字无法访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12329101/