各ユーザーがサーバーを実行するtcpプロトコルを使用してp2pチャットを作成しました(TcpListnerがリッスンしています)。問題ありますか?
- - -編集
リスナーがあるスレッドにあり、クライアントが別のスレッドにあることを追加する必要があります
いいえ、問題ありません。各クライアントは、P2P プログラムでサーバーとクライアントの両方として機能する必要があるため、正しい方法で進みました。
編集: はい、リスナーとクライアントが別のスレッドにあることは問題ありません。
EDIT2:この質問とその回答は読む価値があるかもしれません。
別のスレッドでリスナーを適切に実行し、別のスレッドに書き込むことは問題ありません。または、非同期リスナーを使用できます。実際の問題は、TCP ホール パンチング テクニックを使用しない限り、チャット アプリケーションが LAN 外で動作しないことです。あなたが何をしているのか知っていることを願っています。詳細については、ここにいくつかの事実を追加できます。LAN 外でアプリケーションを使用する場合は、パブリック IP を介して通信する必要があります。パブリック IP が静的でない場合、リクエストは NAT によってブロックされます。この問題を解決するには、TCP/UDP ホール パンチングを使用して NAT を破る必要があります。Googleで検索するだけで、これに関する多くのチュートリアルが得られます. うまくいかなかった場合はお知らせください。