Java 连接到广播IP地址

Java 连接到广播IP地址,java,networking,udp,Java,Networking,Udp,我目前正在开发一个简单的java程序,该程序应该能够在运行我的第二个java应用程序的本地网络中查找计算机,所有这些都使用UDP网络。其中一个应用打开DatagramSocket并启动一个线程来处理所有输入。另一个应用程序连接到当前LAN网络的广播地址(例如192.16.0.255),发送数据包并接收响应。我不太熟悉这种工作方式,但我想知道的是: 如果我在同一网络的不同计算机上启动两个响应应用程序,并在另一台计算机上运行客户端应用程序,它将连接到哪一个? 我以为它会连接并发送数据包给两者,但它只

我目前正在开发一个简单的java程序,该程序应该能够在运行我的第二个java应用程序的本地网络中查找计算机,所有这些都使用UDP网络。其中一个应用打开DatagramSocket并启动一个线程来处理所有输入。另一个应用程序连接到当前LAN网络的广播地址(例如192.16.0.255),发送数据包并接收响应。我不太熟悉这种工作方式,但我想知道的是:

如果我在同一网络的不同计算机上启动两个响应应用程序,并在另一台计算机上运行客户端应用程序,它将连接到哪一个? 我以为它会连接并发送数据包给两者,但它只连接到其中一个,有时不是同一个

你能给我解释一下这件事吗?我将不胜感激

如果我在同一网络的不同计算机上启动两个响应应用程序,并在另一台计算机上运行客户端应用程序,它将连接到哪一个

两者都不是,UDP是无连接协议

我以为它会连接并发送数据包给两者,但它只连接到其中一个,有时不是同一个

UDP是一种有损协议,有时数据将同时发送到两个,一个或两个都不发送。您的路由器可以设置为尝试引导广播流量,但通常它会尝试将所有数据包发送给所有侦听器

顺便说一句:所有侦听器必须位于192.168.0.255 C类子网上。IP地址为192.168.1.1的主机可能看不到此数据包

如果我在同一网络的不同计算机上启动两个响应应用程序,并在另一台计算机上运行客户端应用程序,它将连接到哪一个

两者都不是,UDP是无连接协议

我以为它会连接并发送数据包给两者,但它只连接到其中一个,有时不是同一个

UDP是一种有损协议,有时数据将同时发送到两个,一个或两个都不发送。您的路由器可以设置为尝试引导广播流量,但通常它会尝试将所有数据包发送给所有侦听器


顺便说一句:所有侦听器必须位于192.168.0.255 C类子网上。IP地址为192.168.1.1的主机可能看不到此数据包。

您所说的“连接”到底是什么意思?UDP没有这种功能,只需向某个地址发送数据报即可。你能帮我发一些广播代码吗?发送到广播地址的数据报通常会到达两台监听计算机。你所说的“连接”到底是什么意思?UDP没有这种功能,只需向某个地址发送数据报即可。你能帮我发一些广播代码吗?发送到广播地址的数据报通常应该到达两台监听计算机。当然,它实际上没有连接。据我所知,UDP协议将在整个网络中单独发送数据报,其中一些数据报可能无法到达目的地或全部数据报。但是,如果我有一个简单的家庭网络,那也没什么大不了的,我试着启动应用程序好几次,看看会发生什么,我只收到一台计算机的数据报。顺便说一句,我的网络设置是:PC_1 IP:192.168.0.1;PC_2 iP:192.168.0.16;子网掩码:255.255.255.0,我使用的是广播IP:192.168.0.255我想我有它,我将不得不接收所有输入数据报,因为我没有意识到它们都在,但不是每次都以相同的顺序。谢谢您的时间:-)两台电脑都应该能看到所有的数据包。如果您的电脑使用192.168.0.1,您的网关/交换机/路由器使用什么?如果你的网关是默认的(即相同的),这会使事情变得混乱。UDP的另一个问题是不能保证顺序。此外,超过532字节的数据包可能会被分割,然后出现无序和部分丢失。基本上UDP听起来是个好主意,直到你不得不使用它。TCP得到了很好的优化,通常是最好的解决方案。网络类已经死亡,1993年被RFCs 1517、1518和1519杀死,后者定义了CIDR(无类域间路由)。现代网络不使用类。请让他们安息吧。此外,路由器不涉及第二层LAN,在第二层LAN中,帧根据第二层(MAC地址)直接从一台主机传送到另一台主机(可能通过网桥)。路由器使用第三层(IP)地址在网络之间路由数据包,而不是从一个网络返回到同一个网络。当然,它实际上没有连接。据我所知,UDP协议将在整个网络中单独发送数据报,其中一些数据报可能无法到达目的地或全部数据报。但是,如果我有一个简单的家庭网络,那也没什么大不了的,我试着启动应用程序好几次,看看会发生什么,我只收到一台计算机的数据报。顺便说一句,我的网络设置是:PC_1 IP:192.168.0.1;PC_2 iP:192.168.0.16;子网掩码:255.255.255.0,我使用的是广播IP:192.168.0.255我想我有它,我将不得不接收所有输入数据报,因为我没有意识到它们都在,但不是每次都以相同的顺序。谢谢您的时间:-)两台电脑都应该能看到所有的数据包。如果您的电脑使用192.168.0.1,您的网关/交换机/路由器使用什么?如果你的网关是默认的(即相同的),这会使事情变得混乱。UDP的另一个问题是不能保证顺序。此外,超过532字节的数据包可能会被分割,然后出现无序和部分丢失。基本上UDP听起来是个好主意,直到你不得不使用它。TCP得到了很好的优化,通常是最好的解决方案。网络类已经死亡,1993年被RFCs 1517、1518和1519杀死,后者定义了CIDR(无类域间路由)。现代网络不使用类。请让他们安息吧。此外,路由器不参与第二层LAN,在该层LAN中,帧是deli