Added .gitignore.
Output some info when connecting.
Remove debugging.
Added some state tracking.
Marginally more understandable error message.
Really meant to use non-blocking.