Peer-To-Peer per UPNP

JJB

Cogito ergo brumm
Hallo zusammen,

ich möchte zwei Rechner per TCP Clients verbinden.
Das hatte ich schon mal und war auch kein Problem bei Rechnern im selben Netzwerk oder mit einer direkten Verbindung ins Internet.
Aber heutzutage sitzt fast jeder Rechner hinter einem Router. Wie kann ich die beiden dann verbinden ?

Ich habe gelesen, dass über UPNP Applikationsgesteuerte Port Weiterleitung möglich ist (und so gewissermaßen die Sicherheit umgangen wird).
Eine Vorlage hierzu gibt es bei codeproject unter "NAT-Traversal-with-UPnP-in-C".
Allerdings hilft sie mir nicht gerade, da ich einen Timeout beim senden der Broadcast Nachricht erhalte. Ist vielleicht auch etwas adhoc geschrieben.

Gibt es einen sauberen übersichtlichen Weg zur Peer-to-Peer Verbindung zweier Rechner für TcpClient unter C# ?
Vielleicht ein Codebeispiel unter 500 Zeilen, etwas ohne wenn und aber ?

Ich wäre für jede Hilfe dankbar.

MFG JJB