我目前正致力于简单的java程序,它应该能够在运行我的第二个Java应用程序的本地网络中寻找计算机,所有这些都使用UDP网络。其中一个应用程序打开DatagramSocket并启动一个处理所有输入的线程。另一个应用程序连接到当前LAN网络的广播地址(例如192.16.0.255),发送数据包并接收响应。我对它的工作方式不太熟悉,但这就是我想知道的:
如果我在同一网络的不同计算机上启动其中两个响应应用程序并在其他计算机上运行客户端应用程序,那么它将连接到哪个? 我以为它会连接并向两者发送数据包,但它只连接到其中一个,有时也不一样。
你可以向我解释这件事吗?我很感激。答案 0 :(得分:3)
如果我在同一网络的不同计算机上启动其中两个响应应用程序并在其他计算机上运行客户端应用程序,那么它将连接到哪个?
UDP都不是无连接协议。
我认为它会连接并向两者发送数据包,但它只连接到其中一个,有时也不一样。
UDP是一种有损协议,有时数据会同时传输给两者,一种或两种。您的路由器可以设置为尝试引导广播流量,但通常它会尝试将所有数据包发送给所有侦听器。
BTW:所有侦听器必须位于192.168.0.255 C类子网上。 IP地址为192.168.1.1的主机可能看不到此数据包。