This assumes the master server bits are taken care of (the peer host has been notified that the peer client would like to join it). I am using this blog post as my guide so far - NAT Punch-through for Multiplayer Games | Keith Johnston
My peer host needs to send packets to my other peer to open up the router - how specifically would I do that on a game already set to listen to those ports (7777)
I am able to send tcp packets unbound on port 7777 (but it is sent FROM a random port) I assume this is why it is not working. The second I try to bind to a port, the socket fails to construct.