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

时间:2010-04-01 05:43:49

标签: java client-server

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

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

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

在视频游戏这种情况下,同一网络上可能有任意数量的计算机,并且任何数量的计算机可能正在尝试托管或以其他方式运行该应用程序。任何其他重要信息,或者可能参考比我正在使用的更详细的教程,关于在客户端上如此少的信息建立联系,将不胜感激。

非常感谢,

乔纳森

1 个答案:

答案 0 :(得分:6)

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

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