【问题标题】:Can't receive UDP Datagrams无法接收 UDP 数据报
【发布时间】:2011-05-13 03:37:24
【问题描述】:

我必须开发一个分布式系统,该系统包括通过 TCP 套接字与来自其 IP 地址的某人进行聊天会话,连接到一个服务器,该服务器列出最近 3 分钟连接到它的所有 ips。除了这个主要功能之外,应用程序还必须向每个 IP 发出请求,以获取它们的名称和当前状态、活动、忙碌或停止。在通过 UDP 套接字发送该请求之后,在另一端,他们​​必须也通过 UDP 发送该请求的回复。

编辑 - 基本上,应用程序必须联系存储在最后几分钟连接到服务器的 ips 的服务器。然后它必须检索该 IP 地址并联系每个地址以获取其名称和状态。

很遗憾,我只收到了对我请求的回复,但其他同事收到了我的请求。

我该如何解决这种情况?

【问题讨论】:

    标签: java multithreading sockets udp distributed


    【解决方案1】:

    您没有给我们提供太多信息,但我首先想到的是防火墙或路由问题。网络拓扑是什么?服务器和正常工作的客户端是否在防火墙或 NAT 路由器的同一侧,而其他不工作的客户端是否在另一侧?来自非工作客户端的 UDP 回复是否发送到网络上?它们是否到达您的服务器,但没有被服务器软件正确接收? (最后几个问题可以通过使用Wireshark 之类的工具来查看离开客户端和到达服务器的网络流量。)

    【讨论】:

    • 在大学里是完全不可能交流的,因为他们有一个代理服务器,限制移植规则。在家里,我有一个无线路由器,但我也有带 USB 调制解调器的便携式互联网。
    • @tiago:那么服务器是在大学网络上,还是在你家里的一台机器上?工作客户和非工作客户呢?
    • “存在”服务器托管在大学中,但可以从任何网络访问。应用程序必须连接到该服务器,从该服务器接收 ips 并创建列表以便稍后与某人交谈。
    • @tiago:这有帮助!编辑您的问题以包含该信息可能是一个好主意 - 其他人可能不会在 cmets 中注意到它。所以听起来问题不在于客户端“存在服务器”通信,而是客户端从服务器获取IP地址列表后的UDP通信?当您说您成功“收到我的请求的回复”时,是客户端服务器还是客户端客户端通信?
    • 它的客户端 客户端。我的客户发送到 7 个 IP 地址请求他们的信息,然后这 7 个地址必须回复他们的姓名和状态
    猜你喜欢
    • 2013-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-24
    • 2011-03-02
    • 1970-01-01
    • 2012-11-26
    相关资源
    最近更新 更多