连接到广播IP地址

问题描述 投票:1回答:1

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

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

你能解释一下这个问题吗?我会很感激。

java networking udp
1个回答
3
投票

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

UDP也不是无连接协议。

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.