Edit: Rewrote the knocker, now connects, and returns a socket and a specified lport