Javaソケットを使用したインターネットアクセスなしのLANチャットアプリケーション
ユーザー A がプログラムを開き、名前とアバターを選択し、「ログイン」をクリックし、ローカル エリア ネットワークへの着陸を開始します。ユーザー A ログイン プログラムは 2 つのスレッドを同時に開始します。そのうちの 1 つは UDP サービス ターミナル (ポート番号 9156) 内のスレッドです。他のユーザーがログインするのを待機するために使用され、内部の別のスレッドが TCP サービス側 (ポート番号 9155) を開始して、他のユーザーのソケット接続を待機します。同時に、ユーザー A も UDP ブロードキャストを使用して UDP パッケージを送信します。この UDP パッケージにはユーザーの名前や IP アドレスなどの情報が含まれており、この UDP パッケージは、このプログラムを含め、同じローカル エリア ネットワーク内の同じポートを持つすべての UDP サービス側プログラムに送信されます。
他にオンライン ユーザーがいる場合、各オンライン ユーザー プログラムの UDP サービス側はこの UDP パッケージを受け取り、ユーザー情報を取り出してユーザー A をオンライン リストに追加します。これは、UDP パッケージにはユーザー A の IP アドレスが含まれているため、それぞれのオンライン ユーザーはユーザー A の IP アドレスを使用してユーザー A に応答を送信します。
ユーザー A はしばらく待つと、すべてのオンライン ユーザーから応答を受け取り、すべてのオンライン ユーザーがユーザー A を自分のオンライン リストに追加します。
チャット方法は、通常どおり、2 台のデバイスがサーバーとして機能するマルチスレッド方式であり、p2p アプリと言えます。