Что означает сбросить сокет?

В качестве обновленного решения вы можете использовать ColorUtils#blendARGB из поддержки Android или AndroidX API:

val startColor = ContextCompat.getColor(context, R.color.white)
val endColor = ContextCompat.getColor(context, R.color.yellow)
ColorUtils.blendARGB(startColor, endColor, 0.75)

23
задан Bjorn 3 November 2013 в 03:49
поделиться

3 ответа

Запись в сетевой сокет и отправка данных связаны с определенными накладными расходами. Если бы данные отправлялись каждый раз, когда байт входил в сокет, вы бы получили 40+ байтов заголовка TCP для каждого байта фактических данных. (Если, конечно, вы используете сокет TCP. Другие сокеты будут иметь другие значения). Чтобы избежать такой неэффективности, сокет поддерживает локальный буфер, размер которого обычно несколько превышает 1000 байт. Когда этот буфер заполняется, заголовок оборачивается вокруг данных, и пакет отправляется по назначению.

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

49
ответ дан 29 November 2019 в 01:08
поделиться

Я не использовал флеш для программирования сокетов. Я где-то помню, что есть режимы, которые вы можете установить, когда потоковая отправка пытается уменьшить количество отправляемых небольших пакетов. Однако вы должны использовать sendall (), чтобы убедиться, что все в буфере отправлено.

Функция shutdown () очень полезна при спулинге. Конечно, вы должны использовать вызов close (), если не хотите, чтобы всякая всячина валялась.

1
ответ дан 29 November 2019 в 01:08
поделиться

Алгоритм Нэгла часто используется для сокетов. Вкратце, он ждет, пока не появится нетривиальный объем данных для отправки. Проблема состоит в том, чтобы достичь баланса между задержкой передачи и накладными расходами на отправку пакета данных.

Чем больше полезная нагрузка данных, тем меньше потеряна полоса пропускания, потому что заголовок имеет (в основном) фиксированный размер. Более того, промежуточные системы обычно имеют ограничения производительности, основанные в большей степени на скорости передачи пакетов, а не на общей скорости передачи данных.

2
ответ дан 29 November 2019 в 01:08
поделиться
Другие вопросы по тегам:

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