Неблокирование UDP ввод-вывод по сравнению с блокированием UDP ввод-вывод в Java

Создайте новый файл блейд-уведомлений и попробуйте следующий код (Примечание: пожалуйста, включите Notification.blade.php в ваш файл просмотра)

    @if (count($errors) > 0)
    <div class="alert alert-danger">
        <button type="button" class="close" data-dismiss="alert" aria-label="Close">
            <span>x</span>
        </button>
        @foreach ($errors->all() as $error)
            <span>{{ $error }}</span><br>
        @endforeach
    </div>
@endif

@if(session()->has('message'))
    <div class="alert alert-success">        
        <button type="button" class="close" data-dismiss="alert" aria-label="Close">
            <span>x</span>
        </button>        
        <span data-notify="message">{{ session('message') }}</span>
    </div>
@endif
17
задан RamenChef 3 June 2018 в 19:41
поделиться

2 ответа

Это было некоторое время, так как я использовал DatagramSockets Java, Каналы и т.п., но я могу все еще дать Вам некоторую справку.

протокол UDP не устанавливает соединение как TCP, делает. Скорее это просто отправляет данные и забывает об этом. Если важно удостовериться, что данные на самом деле добираются там, который является ответственностью клиента. Таким образом, даже если Вы будете в блокирующемся режиме, то Ваш отправлять операцию только заблокируется столько, сколько это берет для промытия буфера. Так как UDP ничего не знает о сети, он выпишет его при первой возможности, не проверяя скорость сети или если это на самом деле добирается туда, где он, как предполагается, идет. Таким образом, Вам, появляется, как будто канал на самом деле сразу готов к большему количеству отправки.

17
ответ дан 30 November 2019 в 12:58
поделиться

UDP не блокируется (Это только блоки, в то время как это передает данные ОС), Это означает, не может ли в какой-либо точке следующий транзитный участок/переключатель/машина буферизовать пакет UDP, это отбрасывает его. Это может быть желательным поведением в некоторых ситуациях. Но это - что-то, о чем необходимо знать.

UDP также не гарантирует

  • пакеты доставки в порядке, который они отправляются.
  • для не разбивания больших пакетов.
  • передачи пакетов через переключатели. Часто передача UDP между переключателями выключена.

Однако UDP действительно поддерживает многоадресную передачу, таким образом, тот же пакет может быть поставлен одному или нескольким хостам. Отправитель понятия не имеет, получает ли кто-либо пакеты как бы то ни было.

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

10
ответ дан 30 November 2019 в 12:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: