В принципе, насколько это касается TCP, это гарантирует, что данные, отправленные с одного конца на другой, будут отправлены в том же порядке. Теперь обычно вам нужно иметь внутренний буфер, который продолжает цикл, пока не получит 1000-байтовый «пакет». Поскольку команда recv, как было упомянуто, возвращает, сколько фактически было получено. Поэтому обычно вам нужно будет выполнить протокол поверх TCP, чтобы вы могли отправлять данные с соответствующей скоростью. Потому что, если вы отправляете () все данные за один проход через него, будет перегружать лежащий сетевой стек и который вызовет осложнения. Поэтому обычно в протоколе отправляется крошечный пакет подтверждения, чтобы подтвердить, что отправлен пакет из 1000 байтов.
Вы можете явно перенести update!
из ProgressMeter
в область видимости.
using DataStructures
using ProgressMeter
using ProgressMeter: update!
Теперь не должно быть никаких предупреждений, и один только update!
должен ссылаться на методы в ProgressMeter
. Если вам нужно вызвать update!
в DataStructures
, вам следует присвоить ему имя DataStructures
.