TCP makes it necess?ry that one end ?oint must fi?st b?gin a connection for data in ?rder to be?ome sent do?n. ?s ?e know you ha?e inbound and outbound friends. ?f I am making an outbound connection t?en it ?s ?n inbound connection at t?? opposite end. And inbound connection ?equires port forwarding ?hich ?e d?n’t hav? set up in this. Also fo? data t? get sent back the socket MU?T BE ESTABLISHED. And ?lso end ?p im?ortant as it is not ? necessity of UDP. UDP is connection-?ess remember (see The differences ?etween TCP and UDP for more info). It will send data ?ithout ever b?ing aware ?f the remote location. ?t is ?rimarily t?e key distinction ?etween TCP ?nd UDP that a?lows yo? to traverse ? NAT using UDP wit?out port s?nding. Th? technique ?? called UDP hole striking.