Powershell TCP принимает файл медленно - PullRequest
0 голосов
/ 09 марта 2020

Это код для скрипта PowerShell, который предназначен для получения файла кусками с сервера python.

$chunkSize = {chunkSize}
$chunk= New-Object Byte[] $chunkSize
while($bytes -gt 0)
{
   if($bytes -ge $chunkSize)
   {
       $buf = $chunkSize
   }
   else
   {
       $buf = $bytes
   }
   $chunk= New-Object Byte[] $buf
   [void]$s.Read($chunk, 0, $buf)
   $file += $chunk
   $bytes -= $buf
}
set-content -value $file -encoding byte -path "$env:temp\\{filename}"
rv file;rv bytes;rv buf;rv chunkSize;rv chunk

Как видите, я поставил [void] перед прочитанное заявление, которое значительно сократило время получения. Однако процесс приема все еще очень медленный в 1024 байтовых кусках. В моих проектах на основе сокетов C# мои файлы отправлялись бы без особых усилий с минимальной задержкой.

Однако с PowerShell это происходит вечно, даже после подавления вывода метода Read.

Есть ли что-то, чего мне не хватает в моем скрипте PowerShell, что замедляет работу?

Спасибо за вашу помощь!

...