Skip to content

Instantly share code, notes, and snippets.

@steinelu
Last active October 1, 2022 16:46
Show Gist options
  • Save steinelu/d1a1cb8c692de1050418b141de91c5b7 to your computer and use it in GitHub Desktop.
Save steinelu/d1a1cb8c692de1050418b141de91c5b7 to your computer and use it in GitHub Desktop.
a small server waiting for a single connection
# strongly inspired from https://hkeylocalmachine.com/?p=518
$listener = New-Object System.Net.HttpListener
$listener.Prefixes.Add('http://+:8000/')
$listener.Start()
while ($true){
$context = $listener.GetContext()
Write-Host $context
$request = $context.Request
$response = $context.response
if ($request.Url.length > 1 && $request.Url.Segments[1] -match 'shutdown'){
$message = "is going to shutdown in x minutes"
shutdown
} else {
$message = "nope"
}
$response.ContentType = "text/html"
[byte[]] $buffer = [System.Text.Encoding]::UTF8.getBytes($message)
$response.ContentLength64 = $buffer.length
$out = $response.OutputStream
$out.Write($buffer, 0, $buffer.length)
$out.Close()
}
$listener.Stop()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment