0

Java ソケットを使用して、異なるネットワーク上の 2 つの Android デバイスを接続したいと考えています。一方のデバイスはサーバーとして機能し、もう一方はクライアントとして機能します。クライアントがサーバーに接続できるように、サーバーが公開する必要があるアドレスはどれですか?

java.netインスタンスに localhost 情報 (ホスト名、localhost アドレス) を提供するメソッドを持つInetAddressクラスがあります。getLocalHost()私のマシンで実行すると、与えられるアドレスは 192.168.1.101 です。これは、クライアント デバイスが接続するためにサーバー デバイスが公開する必要があるアドレスですか? ローカルアドレスなので、ノーだと思います。では、各デバイスの正しいアドレスはどこで取得できますか?

4

1 に答える 1

1

NetworkInterfaceを使用して、すべてのネットワークインターフェイスを列挙できます。また、3GからWifiへの切り替えなど、接続の変更を処理する必要がある場合もあります。通常、デバイスはグローバルIPアドレスを持つことが保証されていないため、独自のネットワークでのみ実行し、有効なIPまたは必要なNAT/ポートフォワーディングなどを設定しているため、接続できない場合があります。

于 2012-09-24T02:33:10.550 に答える