2013-03-21 217 views
0

我有一个非常简单和基本的Java客户端/服务器程序。这工作正常。但是,我现在正在尝试编写Android客户端,并且我无法从我的Android客户端连接到服务器。我为普通客户端使用的android网络代码使用几乎相同的代码。我的Android代码很简单,它的作用是启动该线程的onCreate:客户端 - 服务器程序,可以从Java客户端而不是从Android

private int serverPort = 8889; 
private String serverIP = "192.168.5.230"; 
private Socket socket = null; 

private Thread clientThread = new Thread("ClientThread") { 
    @Override 
    public void run() { 
     try { 
      socket = new Socket(); 
      socket.connect(new InetSocketAddress(serverIP, serverPort), 1000); 
      DataInputStream din = new DataInputStream(socket.getInputStream()); 
      DataOutputStream dout = new DataOutputStream(socket.getOutputStream()); 

      while (true) { 
       String message = din.readUTF(); 
       setPicture("picture1"); 
      } 
     } catch (UnknownHostException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     }  
    } 
}; 

港是我的服务器上运行正确的端口,如IP地址(这是我从使用ifconfig了,因为我知道你不能使用本地主机)。当我使用相同的端口和IP地址运行我的普通PC客户端时,连接会通过。但是,当我在我的Android设备上运行此代码时,套接字超时,当我尝试连接。

有没有人有什么建议,我要去哪里错了?感谢您的帮助。

+0

您的Android设备是否连接到网络?不是电脑,而是网络.... – Thihara 2013-03-21 04:22:29

回答

1

您添加在清单文件的权限要求,仔细检查:

<uses-permission android:name="android.permission.INTERNET" /> 

但是,可能更重要的是,192.168.xx的是本地的还是非路由网络,所以你需要在同一个网络上,或者知道如何到达192.168.5.230地址的人。你说当你在你的设备上尝试它时它不起作用 - 你在运行时运行在本地wifi还是在移动网络上运行?如果您使用的是移动设备,请尝试使用WiFi。

+0

为了澄清,这个答案的底部是什么解决了我的问题。我错误地认为我的电话网络能够连接到我的电脑正在运行的网络 – lbrendanl 2013-03-22 00:38:45

+0

太棒了!很高兴我能帮上忙! – Dave 2013-03-22 00:47:13

相关问题