param( [int] $Port = 7788, [string] $Log = "$PSScriptRoot\sidecar_loop.log" ) $ErrorActionPreference = 'Stop' "[sidecar] listening on 127.0.0.1:$Port" | Out-File $Log -Encoding utf8 $listener = New-Object System.Net.Sockets.TcpListener([System.Net.IPAddress]::Loopback, $Port) $listener.Start() while ($true) { try { $client = $listener.AcceptTcpClient() "[sidecar] === shard connected ===" | Add-Content $Log $stream = $client.GetStream() $reader = New-Object System.IO.StreamReader($stream) while ($null -ne ($line = $reader.ReadLine())) { "[sidecar] <- $line" | Add-Content $Log } "[sidecar] === shard disconnected ===" | Add-Content $Log $client.Close() } catch { "[sidecar] error: $_" | Add-Content $Log Start-Sleep -Milliseconds 200 } }