我创建了一个DatagramSocket并在其上调用了getPort,它总是返回-1。在javadocs中,对于空的DatagramSocket构造函数,它表示它将自身附加到可用端口。我非常怀疑我的电脑正在使用每个端口。生命周期中的哪一点实际上是为它分配了一个端口号?
答案 0 :(得分:3)
DatagramSocket.getPort
returns the port to which the socket is connected - 即连接其他端的端口,如果您已连接套接字。
由于您尚未连接套接字,因此返回-1。
要获得最终的端口号,请改用getLocalPort
。