DatagramChannel 接收可能不是 return SocketAddress

DatagramChannel receive may not return SocketAddress

根据 DatagramChannel 的 Javadoc,接收方法:

public abstract SocketAddress receive(ByteBuffer dst)
                           throws IOException
如果 DatagramChannel 处于非阻塞模式,

可能 return null。除了更改为阻塞模式之外,还有什么方法可以确保我获得所读取数据的 SocketAddress?

may return null if the DatagramChannel is in non-blocking mode.

Read on.

Returns ... null if this channel is in non-blocking mode and no datagram was immediately available.

如果它返回 null,则表示没有读取数据。这种情况对应SocketChannel.read()返回零。