gpt4 book ai didi

java - 无法使用 Android 设备的主机名进行连接

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:09:56 27 4
gpt4 key购买 nike

我正在尝试使用 TCP 协议(protocol)从我的 android 设备连接到 linux PC。两个设备都在同一个网络上。

当我在同一网络上的另一台 PC 上使用像这样的简单 java 代码时,它可以工作并得到输出

class Server {
public static void main ( String[] args ) throws IOException
{
String hostname = "MY_COMPUTER_NAME";

try
{
InetAddress ipaddress = InetAddress.getByName(hostname);
System.out.println("IP address: " + ipaddress.getHostAddress());
}
catch ( UnknownHostException e )
{
System.out.println("Could not find IP address for: " + hostname);
}
}
}

输出:

IP address: 192.168.1.3

当我使用此代码连接到我的 Android 手机上的套接字时,它就是不起作用。处理程序还更新另一个 TextView 以进行调试。当我用我在路由器设置中看到的实际 IP 替换 MY_COMPUTER_NAME 时,一切正常,创建套接字并更新 TextView。

//Some variables
String hostname = "MY_COMPUTER_NAME";
private static final int SERVERPORT = 5001;
InetAddress ipaddress = null;
String address = null;

@Override
public void run() {
while(true){
try {
ipaddress = InetAddress.getByName(hostname);
address = ipaddress.getHostAddress();
socket = new Socket(ipaddress, SERVERPORT);

myHandler.post(updateRunnable);

break;
} catch (UnknownHostException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}

可能是什么问题,我错过了什么?谢谢。

最佳答案

我认为 Android 在 NetBIOS 名称方面存在问题,但可以查找在 DNS 服务器上注册的名称。看这里:Host is unresolved in LAN

关于java - 无法使用 Android 设备的主机名进行连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19671624/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com