为什么 DatagramSocket 的 getPort() 返回 -1?

yem*_*sta 1 java udp

我创建了一个 DatagramSocket 并在它上面调用了 getPort,它总是返回 -1。在 javadocs 中,对于空的 DatagramSocket 构造函数,它表示它将自身附加到可用端口。我非常怀疑我的计算机是否正在使用每个端口。它实际上在生命周期的哪个时刻获得了分配给它的端口号?

use*_*751 7

DatagramSocket.getPort 返回套接字连接的端口——即连接另一端的端口,如果你已经连接了套接字。

由于您尚未连接套接字,因此它返回 -1。

要在您的终端获取端口号,请getLocalPort改用。