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 回答