我试图找出如何获得Portnumber for 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())
我在谷歌搜索并没有找到解决方案。也许有人可以帮助我。我确信有一种方法可以获得Portnumber for Socket Dynamic。但我无法在StackOverflow和谷歌上找到它。
我已经尝试过这个:
Socket s = new Socket("http://www.google.at", 0);
System.out.println("listening on port: " + s.getLocalPort())
问候 克里斯托夫
答案 0 :(得分:1)
您已经找到了解决方案。 Socket.getLocalPort()
为您提供Socket
的本地端口。很奇怪的是。如果您没有绑定Socket
,或者将其绑定到端口0,则会动态分配本地端口。
new Socket("...", 0)
(a)是非法的,并且(b)构成连接到动态远程端口的尝试,如果它是合法的,它不是。< / p>
为什么你需要知道Socket
的本地端口是另一个问题。
NB ServerSockets
听。 Sockets
连接。