私は、インターネットを介した TCP 接続を含む学校のプログラミング プロジェクトを扱っています。クライアントでポート転送を使用できません! 中継サーバーが機能します。たとえば、クライアント A がクライアント B に接続してデータを送信する代わりに、両方とも WAN に対して開いているポートを持つサーバーに接続し、A がサーバーにデータを送信し、サーバーはデータを B に送信します。プロセスを複雑にします。
一般的に、これを行うにはどうすればよいですか?クライアントに直接通信させるためのトリックはありますか、それとも中継サーバーが必要ですか? iChat はクライアント間でオーディオ/ビデオ チャットを直接行うと思っていましたが、ポート フォワーディングや NAT-PMP/UPnP は関係ないようです。
念のため、このプロジェクトでは Objective-C を使用し、最後のプロジェクトでは Java を使用しています。どちらも Mac 上で実行されています。