我的工作,它发送UDP数据包发起处理,并且需要3-5分钟后回送响应在同一个插座一个应用程序,但问题是,当发回响应,它永远不会到达客户端。 我用java。 任何建议,我们如何能够保持插座活着在一段较长的时间?
-
我的工作,它发送UDP数据包发起处理,并且需要3-5分钟后回送响应在同一个插座一个应用程序,但问题是,当发回响应,它永远不会到达客户端。 我用java。 任何建议,我们如何能够保持插座活着在一段较长的时间?
-
任何建议,我们如何能够保持插座活着在一段较长的时间?
和
有没有一种方法来设置UDP超时设置...?
UDP是无连接的。 如果一个应用程序绑定到UDP服务器套接字和监听,它可以等待消息的到达下去。
反面是没有办法在协议/插座电平,以检测丢失的UDP消息。 如果一台计算机发送一个UDP信息到另外一台,第一台具有知道如果消息已经到达与否没有直接的方法? 有没有传输级别超时告诉发送方重发。
如果需要的可靠性,超时,自动重发等,你是使用基于连接的传输协议,例如TCP的更好。
发行由同事的建议,可能是因为防火墙关闭UDP连接,如果有一个特定的时间内没有活动,沟通是可靠的一个需要实现超时探测。
在它面前,这解释是没有意义的。 UDP是无连接的,所以没有连接关闭,或保持活着。
真正的解释可能是下列之一:
该UDP请求或UDP答复被拦截的防火墙软件在一台机器或其它,或某处网络。
什么是不正确有关,该消息被发送或接收的方式。
您正在试图通过NAT网关发送UDP消息; 例如,一台机器的IP地址不能从其他路由。 特别措施,如UDP打洞都需要得到UDP流量的NAT的主机,它可能需要发送保活分组,以保持从时间点出了“UDP洞”。
如果你正在尝试通过从Java NAT防火墙发送UDP,有这样做的各种(第三方)的Java库。 搜索“眩晕”和“转”或“冰”一起的“Java”和“UDP”,或读一开始下列内容:
这些解决方案都需要您采取措施来“刷新” NAT绑定保持防火墙“孔”打开。