3

Android アプリから Roving Networks WiFly で実行されているサーバーへの TCP 接続を開こうとしています。WiFly はルーターにホスト名 WiFly として表示され、IP アドレスは 192.168.1.4 です。

IP アドレスを使用して接続すると、接続は正しく開きますが、ホスト名を使用して接続すると、次のようにエラーが発生します。

ホスト「wifly」を開くことができません: ホスト名に関連付けられたアドレスがありません

使用されているコードの一部を次に示します。

    try 
    {
        InetAddress serverAddr = InetAddress.getByName("wifly");

        Log.d("TCP Client", "C: Connecting...");

        //create a socket to make the connection with the server
        Socket socket = new Socket(serverAddr, SERVERPORT);

        .......
    }

アイデアはありますか?

4

1 に答える 1

0

名前が正しいことを確認する必要があります。次を使用してすべてのホストをリストできます。

import java.io.*;
import java.net.*;
import java.util.*;
import static java.lang.System.out;

public class ListNets {

    public static void main(String args[]) throws SocketException {
        Enumeration<NetworkInterface> nets = NetworkInterface.getNetworkInterfaces();
        for (NetworkInterface netint : Collections.list(nets))
            displayInterfaceInformation(netint);
    }

    static void displayInterfaceInformation(NetworkInterface netint) throws SocketException {
        out.printf("Display name: %s\n", netint.getDisplayName());
        out.printf("Name: %s\n", netint.getName());
        Enumeration<InetAddress> inetAddresses = netint.getInetAddresses();
        for (InetAddress inetAddress : Collections.list(inetAddresses)) {
            out.printf("InetAddress: %s\n", inetAddress);
        }
        out.printf("\n");
     }
}  

Oracle ドキュメントから抜粋したコード

それが識別する実際の名前を確認し、それを使用します。

于 2012-10-24T08:24:50.980 に答える