Как установить тайм-аут для метода FFmpegFrameGrabber grab () в JavaCV

На уровне приложения существует множество причин, по которым все 1500 байтов могут не отображаться в одном чтении. Различные факторы во внутренней операционной системе и стек TCP могут привести к тому, что приложение получит несколько байтов в одном запросе на чтение, а некоторые в следующем. Да, стек TCP должен повторно собрать пакет перед отправкой его, но это не означает, что ваше приложение будет получить все это в одном кадре (это, скорее всего, получите его в одном чтении, но это не ГАРАНТИРОВАНО получить его в одном чтении).

TCP пытается гарантировать порядок доставки байтов, с проверкой ошибок, автоматическое повторное посыла, и т.д. происходит за спиной. Думайте об этом как труба в приложении слоя и не получить слишком увязли в том, как стек фактически отправляет его по сети.

0
задан Null Pointer 18 January 2019 в 15:16
поделиться