2011-10-05 5 views
2

Я строю систему связи UDP с Java NIO и просматриваю javadoc для API-интерфейсов. Я заметил, что у каналов есть примитив записи и примитив отправки. Я прототипировал и пробовал и то, и другое, кажется, не изменилось, поскольку они оба поставляют буфер с другой стороны. Точно так же книги, на которые я смотрел, похоже, не помогают устранить это сомнение, поэтому я подумал спросить: в чем разница между channel.write и channel.send?В чем разница между записью и отправкой по каналам NIO?

Заранее спасибо.

ответ

1

Javadoc для DatagramChannel .send() говорит вам разницу

Датаграмма передается из буфера байта, как по обычной операции записи.

Этот метод выполняет те же проверки безопасности, что и метод отправки класса DatagramSocket. То есть, если сокет не подключен к определенному удаленному адресу, и был установлен диспетчер безопасности, то для каждой отправляемой дейтаграммы этот метод проверяет, что целевой адрес и номер порта разрешены с помощью метода checkConnect диспетчера безопасности. Накладных расходов на эту проверку безопасности можно избежать, сначала подключив сокет через метод подключения.

+1

... и, кроме того, вы можете вызвать только вызов write() на подключенном датаграмме. – EJP

 Смежные вопросы

  • Нет связанных вопросов^_^