我正在尝试使用TCP协议从我的安卓设备连接到一台Linux PC。两台设备都在同一个网络上。
当我在同一网络上的另一台PC上使用以下简单的Java代码时,它可以正常工作并输出结果。
当我使用这段代码连接到我的安卓手机上的套接字时,它就是不起作用。处理程序还更新了另一个文本视图以进行调试。当我将MY_COMPUTER_NAME替换为我在路由器设置中看到的实际IP地址时,一切都正常,套接字被创建并更新了文本视图。
什么可能是问题,我缺少了什么?谢谢。
当我在同一网络上的另一台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
当我使用这段代码连接到我的安卓手机上的套接字时,它就是不起作用。处理程序还更新了另一个文本视图以进行调试。当我将MY_COMPUTER_NAME替换为我在路由器设置中看到的实际IP地址时,一切都正常,套接字被创建并更新了文本视图。
//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();
}
}
}
什么可能是问题,我缺少了什么?谢谢。