如何在Java中获取侦听服务器端口?
我的应用程序部署在WebSphereServer中,从java代码中,我需要获取服务器的侦听端口 注意: 我使用下面的行获取系统的内部主机名。 InetAddress.getLocalHost().getHostName() 编辑:如何在Java中获取侦听服务器端口?,java,sockets,server,inetaddress,Java,Sockets,Server,Inetaddress,我的应用程序部署在WebSphereServer中,从java代码中,我需要获取服务器的侦听端口 注意: 我使用下面的行获取系统的内部主机名。 InetAddress.getLocalHost().getHostName() 编辑: 我们的服务器在本地端口30036和本地主机名上运行。我们无法从外部使用这些主机和端口连接此服务器。我们有单独的公共主机/端口用于外部连接。但在我们的场景中,我们希望从java代码访问运行在同一服务器上的服务。有没有办法动态获取此内部端口?您应该能够在服务方法(get
我们的服务器在本地端口30036和本地主机名上运行。我们无法从外部使用这些主机和端口连接此服务器。我们有单独的公共主机/端口用于外部连接。但在我们的场景中,我们希望从java代码访问运行在同一服务器上的服务。有没有办法动态获取此内部端口?您应该能够在服务方法(get、post、service等)中访问
request.getLocalPort()
。这将告诉您请求是在哪个端口发出的。可能在路由过程中某个地方发生了更改,并且服务器正在侦听的端口并不完全是客户机所知道的,但如果是这样的话,服务器绝对无法知道这一点。可能重复request.getLocalPort()
将返回客户端可以连接的外部端口。我的要求是获取正在侦听的服务器的内部端口号。您有理由相信这两者是不同的吗?比如,我不认为获得一个内部端口是多么有用——唯一真正重要的是客户端连接的端口——这是一个websever,呃?出于安全原因,企业服务器在不同的内部端口和内部主机上运行。External host和External用于连接外部客户机,但您无法使用外部主机/端口从同一台服务器连接到同一台服务器。因此,您的网络设置与我的网络(世界上600家最有价值的公司之一)截然不同。出于“安全原因”在内部端口上运行几乎没有逻辑意义。如果用户可以连接,那么用户也可以连接,简单明了。混淆了“request.getLocalPort()”和“request.getServerPort()”。看起来“request.getLocalPort()”提供了正确的端口。