After a lot of confused fumbling, this works on Windows.  I did not realize that stdin could be a bidirectional pipe.  No longer need to pass a socket over it.
Fix clang warnings.
Of course I did not mean to commit that.  Sigh.