>>224
> 3.ポートを切り替える。

が無理です。

>>224のように登録サーバを使うhole punchingなら簡単です。

双方自分のIPアドレス、ポート番号を登録して、
ローカルソケットには登録したIPアドレス、ポート番号をbindし、
同時に相手にconnectしにいけばいいだけです。

UDPでも全く同じコードで動きます。