我试图找出如何获取套接字动态的端口号。
ServerSocket s = new ServerSocket(0);
System.out.println("listening on port: " + s.getLocalPort())
我在stackoverflow上找到了这个例子。它的作品,但我不需要一个服务器插座。我需要一个插座:
Socket s = new Socket("http://www.google.at", 8081);
System.out.println("listening on port: " + s.getLocalPort())
我用谷歌搜索,没有找到解决办法。也许有人能帮我。我确信有一种方法可以获得socket动态的端口号。但我在stackoverflow和google上都找不到。
我已经试过这个了:
Socket s = new Socket("http://www.google.at", 0);
System.out.println("listening on port: " + s.getLocalPort())
你好,克里斯托夫
1条答案
按热度按时间nhhxz33t1#
你已经找到解决办法了。
Socket.getLocalPort()
给你一个本地港口Socket
. 奇怪的是。如果你还没绑好的话Socket
,或者将其绑定到端口0,则本地端口是动态分配的。new Socket("...", 0)
(a) 是非法的,并且(b)将构成连接到动态远程端口的尝试,如果它是合法的,那么它不是。为什么你要知道当地的港口
Socket
这是另一个问题。注意
ServerSockets
听。Sockets
连接。