【问题标题】:udp client not reachable from another application无法从其他应用程序访问 udp 客户端
【发布时间】:2009-05-12 05:30:45
【问题描述】:

我正在尝试使用 UDP 在 Java 中实现客户端服务器应用程序。问题是当客户端连接到服务器时,服务器注册客户端并且另一个应用程序尝试使用 clientIP 和 clientPort 连接到客户端;客户端无法获取任何数据。

我能够重新创建 DatagramSocket 以使用他的 IP 和端口连接到客户端,但是当这由不同的应用程序完成时,无法实现通信。

我想提一下我在服务器上监听客户端的端口与服务器应用程序正在使用的端口不同。

我们如何实现这种沟通?

请帮助我。谢谢。

【问题讨论】:

    标签: java network-programming udp


    【解决方案1】:

    您的评论“当客户端连接到服务器时..”让我想知道您是否在客户端的 DatagramSocket 上使用了 connect()。如果是这样,请不要在套接字上调用 connect()。 UDP 是无连接协议,不需要 connect()。通过在 UDP 套接字上调用 connect(),该套接字只能向使用 connect() 指定的主机发送/接收数据。

    如果不是这种情况,那么我能想到的唯一原因是您的客户端计算机可能启用了某些防火墙,或者您的客户端与服务器或其他主机之间存在 NAT/防火墙。使用 Wireshark 检查您的客户端是否正在接收来自其他应用的任何数据包。

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      我可能没抓住重点,但我认为为了让您的客户端能够接受在您的服务器上运行的其他应用程序的连接尝试,您需要在客户端中实现一些监听模块(接受传入的类似服务器的部分连接)。 你可以在这里找到一些有用的例子:http://www.java2s.com/Code/Java/Network-Protocol/UDP.htm

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-12-18
        • 2010-10-26
        • 2015-03-25
        • 1970-01-01
        • 2018-04-05
        • 1970-01-01
        • 2011-04-03
        • 2021-02-15
        相关资源
        最近更新 更多