Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中获取侦听服务器端口?_Java_Sockets_Server_Inetaddress - Fatal编程技术网

如何在Java中获取侦听服务器端口?

如何在Java中获取侦听服务器端口?,java,sockets,server,inetaddress,Java,Sockets,Server,Inetaddress,我的应用程序部署在WebSphereServer中,从java代码中,我需要获取服务器的侦听端口 注意: 我使用下面的行获取系统的内部主机名。 InetAddress.getLocalHost().getHostName() 编辑: 我们的服务器在本地端口30036和本地主机名上运行。我们无法从外部使用这些主机和端口连接此服务器。我们有单独的公共主机/端口用于外部连接。但在我们的场景中,我们希望从java代码访问运行在同一服务器上的服务。有没有办法动态获取此内部端口?您应该能够在服务方法(get

我的应用程序部署在WebSphereServer中,从java代码中,我需要获取服务器的侦听端口

注意: 我使用下面的行获取系统的内部主机名。 InetAddress.getLocalHost().getHostName()

编辑:
我们的服务器在本地端口30036和本地主机名上运行。我们无法从外部使用这些主机和端口连接此服务器。我们有单独的公共主机/端口用于外部连接。但在我们的场景中,我们希望从java代码访问运行在同一服务器上的服务。有没有办法动态获取此内部端口?

您应该能够在服务方法(get、post、service等)中访问
request.getLocalPort()
。这将告诉您请求是在哪个端口发出的。可能在路由过程中某个地方发生了更改,并且服务器正在侦听的端口并不完全是客户机所知道的,但如果是这样的话,服务器绝对无法知道这一点。

可能重复
request.getLocalPort()
将返回客户端可以连接的外部端口。我的要求是获取正在侦听的服务器的内部端口号。您有理由相信这两者是不同的吗?比如,我不认为获得一个内部端口是多么有用——唯一真正重要的是客户端连接的端口——这是一个websever,呃?出于安全原因,企业服务器在不同的内部端口和内部主机上运行。External host和External用于连接外部客户机,但您无法使用外部主机/端口从同一台服务器连接到同一台服务器。因此,您的网络设置与我的网络(世界上600家最有价值的公司之一)截然不同。出于“安全原因”在内部端口上运行几乎没有逻辑意义。如果用户可以连接,那么用户也可以连接,简单明了。混淆了“request.getLocalPort()”和“request.getServerPort()”。看起来“request.getLocalPort()”提供了正确的端口。