客户端如何找到服务器的端口号?

Jon*_*han 0 java client-server

我目前正在学习java中的基本网络.我一直在玩两台计算机之间的服务器和客户端关系.但是,我无法弄清楚分布式程序(比如视频游戏)如何能够找到"主机"计算机,还能找到服务器运行的端口号,以便在两台计算机之间创建一个Socket.我真正看到创建套接字的唯一方法是使用已知的IP地址,并使用已知的端口号.

如何在LAN网络中搜索另一台搜索客户端的计算机(主机)?

如何在没有"ping"响应的所有可用端口的情况下确定服务器所在的端口(据我所知,这是一种糟糕的形式......关于'服务器攻击'......)?

在诸如视频游戏的情况下,在同一网络上可以存在任何数量的计算机,并且它们中的任何数量可能试图托管或以其他方式运行该应用程序.任何其他重要信息,或者可能参考比我正在使用的更详细的教程,关于在客户端上如此非常少的信息建立连接将是值得赞赏的.

非常感谢,

乔纳森

Ign*_*ams 6

通常,服务/方案具有给定的端口号或它们使用的端口号范围(HTTP使用80,SSH使用22等).此外,他们可以连接到"主"服务器,以宣布他们的存在并了解其他节点(例如,Battle.net).

如果使用Zeroconf(通过Bonjour,Avahi等),则严格不需要这些.Zeroconf允许机器在LAN上执行多播DNS,而不是传统上用于DNS的点播机制.这允许他们通过网络发现也支持mDNS的机器,并发现在其上运行的服务.