Прием DatagramChannel может не возвращать SocketAddress - PullRequest
0 голосов
/ 03 мая 2018

Согласно Javadoc для DatagramChannel метод получения:

public abstract SocketAddress receive(ByteBuffer dst)
                           throws IOException

может вернуть ноль, если DatagramChannel находится в неблокирующем режиме. Кроме перехода в режим блокировки, есть ли способ гарантировать получение SocketAddress для данных, которые я прочитал?

1 Ответ

0 голосов
/ 03 мая 2018

может вернуть ноль, если DatagramChannel находится в неблокирующем режиме.

Читать дальше .

Возвращает ... null, если этот канал находится в неблокирующем режиме, и датаграмма сразу не была доступна.

Если он возвратил ноль, данные не были прочитаны. Ситуация соответствует SocketChannel.read(), возвращающему ноль.

...