繁体   English   中英

如何在Java中为Socket客户端获取动态端口号

[英]How to get the dynamic port number in Java for Socket client

我试图找出如何获取 Socket 动态的端口号。

ServerSocket s = new ServerSocket(0);
System.out.println("listening on port: " + s.getLocalPort())

我在 StackOverflow 上找到了这个例子。 它可以工作,但我不需要 ServerSocket。 我需要一个插座:

Socket s = new Socket("http://www.google.at", 8081);
System.out.println("listening on port: " + s.getLocalPort())

我正在用谷歌搜索,但没有找到解决方案。 也许有人可以帮助我。 我确信有一种方法可以获取 Socket Dynamic 的端口号。 但是我在 StackOverflow 和 google 上都找不到它。

我已经尝试过这个:

Socket s = new Socket("http://www.google.at", 0);
System.out.println("listening on port: " + s.getLocalPort())

问候克里斯托夫

您已经找到了解决方案。 Socket.getLocalPort()获取Socket的本地端口。 很奇怪的是。 如果你没有像这里那样绑定那个Socket ,或者将它绑定到端口零,本地端口是动态分配的。

new Socket("...", 0) (a) 是非法的,并且 (b) 将构成连接到动态远程端口的尝试,如果合法,则不合法。

为什么需要知道Socket的本地端口是另一个问题。

NB ServerSockets监听。 Sockets连接。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM