gpt4 book ai didi

java - Java中Socket客户端如何获取动态端口号

转载 作者:行者123 更新时间:2023-11-30 07:23:34 24 4
gpt4 key购买 nike

我尝试找出如何获取动态套接字的端口号。

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())

我用谷歌搜索并没有找到解决方案。也许有人可以帮助我。我确信有一种方法可以获取动态套接字的端口号。但我在 StackOverflow 和 google 上找不到它。

我已经尝试过这个:

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

问候克里斯托夫

最佳答案

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

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

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

NB ServerSockets 监听。 套接字连接。

关于java - Java中Socket客户端如何获取动态端口号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37136176/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com