是否可以找到连接到我的服务器的远程客户端的侦听端口?

时间:2019-01-15 16:20:42

标签: java sockets tcp

一旦建立了传入的TCP连接,就可以通过java.net.Socket找到我的监听端口和为此连接创建的端口。有没有办法?当连接到我的客户端也是监听连接的服务器时;知道此远程客户端/服务器在哪个端口上监听?

感觉像是套接字的错误使用。在我的情况下,它是识别组成我们的应用程序的客户端/服务器实体。因此我可以在建立用于识别的传出连接时发送某种问候消息。
但是我很好奇这是否可行,但我没有找到答案。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

当客户端连接到服务器时,它将打开一个端口,供您将数据发送到客户端。该连接自动连接,以便从服务器写入套接字将发送到正确的客户端端口。如果您想知道Socket.getRemoteSocketAddress()是什么,它将返回一个SocketAddress,可以将该类型转换为具有InetSocketAddress方法的getPort()

如果服务器要使用其他端口打开,则必须将端口从客户端发送到服务器。

例如,如果计算机A正在运行,并且SSH服务器位于端口1234上,并且它想通知计算机B,以便计算机B可以SSH到计算机A,并且计算机B正在侦听端口1337,则计算机A可以连接到在计算机B的端口1337上,发送一些内容,例如“我正在监听1234”,这是B读取的,然后B可以使用它通过SSH进入A。