【问题标题】:How to connect android device to localhost server?如何将android设备连接到localhost服务器?
【发布时间】:2014-09-10 11:57:54
【问题描述】:

我正在尝试在我的 android mobile 上运行的客户端应用程序和我的 windows 7 PC 上运行的服务器之间建立连接。

我是 android 新手,所以在寻找一些客户端服务器教程时,得到了以下 2 个链接。

http://www.compiletimeerror.com/2013/09/creating-java-web-service-using-axis-2.html

http://www.compiletimeerror.com/2013/09/accessing-web-service-from-android.html

这里的服务器是用java开发的,使用axis2 webservice发布的。我按照教程进行操作,可以开发在模拟器上运行良好的类似客户端和服务器。但是,如果我尝试使用我的 android 手机访问相同的内容,它就无法正常工作。我的手机无法与 PC 上的 localhost 通话。

我在这里做的是,

1. Connected both my PC and mobile to same WIFI network.
2. Connected the mobile to PC using USB.
3. Started the Server on Tomcat
4. Running the Client Project from eclipse and selecting my mobile as target.

以下是我从客户端代码调用的已发布 Web 服务 URL,

http://192.168.0.3:8080/MyWebService/services/WebService?wsdl

这里192.168.0.3是我的电脑IP

请让我知道我在这里做错了什么?

【问题讨论】:

  • 什么不起作用?您在 Logcat 中遇到任何错误?您没有任何防火墙规则阻止端口 8080 吗?
  • 它说无法连接到 192.168.0.3。我需要在互联网上发布网络服务吗?
  • @user001 我认为你应该在服务器上发布。但如果有人知道然后详细说明。怎么可能访问未部署在服务器上的 Web 服务。当您在模拟器上运行应用程序时,它知道您的本地主机 IP,因为 tomcat 服务器正在相同的服务器上运行。

标签: java android


【解决方案1】:

Windows 7 可能会阻止端口 8080。您可以使用以下方法测试您的端口是否已从另一台电脑打开

telnet 192.168.0.3 8080

from android using this code

如果 8080 被阻止,那么您可能需要使用 these steps 打开它:

  1. 单击“开始”按钮 打开 Windows 防火墙 开始按钮的图片,然后单击“控制面板”。在搜索框中,键入防火墙,然后单击 Windows 防火墙。
  2. 在左侧窗格中,单击高级设置。需要管理员权限 如果系统提示您输入管理员密码或确认,请输入密码或提供确认。
  3. 在“高级安全 Windows 防火墙”对话框的左窗格中,单击入站规则,然后在右窗格中单击新建规则。
  4. 按照新建入站规则向导中的说明进行操作。

注意:您必须事先确保您的 android 设备连接到同一个局域网或 wifi。

【讨论】:

  • 嗨,Thomas,是的 telnet 命令说端口 8080 被阻止。然后我尝试了您提供的所有步骤,但即使在入站规则向导中创建了新规则后,telnet 仍然给我同样的错误。 (无法通过 8080 端口访问 IP)
  • 嗨@user001。您是否尝试过使用 192.168.0.3 从服务器 pc 访问端口 8080?
  • 嗨,Thomas,我现在可以看到我的 PC 能够 ping 我的手机,如果我在手机上运行服务器代码并在 PC 上运行客户端代码,我的手机能够读取发送的信息通过客户端(PC)。但我需要反之亦然(即移动设备作为客户端,PC 作为服务器),但仍然无法正常工作。它说目的地无法到达。
  • 可能是您的路由器中的 AP 隔离?
  • 好吧,Thomas,我的问题现在解决了。这是w.r.t。防火墙。 Windows 防火墙已关闭,但即便如此,问题仍然存在。然后 IT 人员更改了一些设置,现在它正在工作。 (不确定做了哪些更改)我将您的解决方案标记为正确,因为您为我指出了正确的方向。感谢您的帮助。
【解决方案2】:

尝试访问您的网址

http://192.168.0.3:8080/MyWebService/services/WebService?wsdl

来自您的安卓浏览器。如果你得到一个 xml 页面,那么这不是网络问题。如果是网络问题,请尝试重新启动本地服务器并更改防火墙和路由器配置。

您必须提供更多信息才能获得具体答案。

【讨论】:

  • Android 手机本身没有检测到我的 PC IP,因此 Android 浏览器也不会显示 WSDL。让我知道必须在防火墙和路由器上进行哪些设置。
  • 您的 WiFi 路由器会有一个配置 IP。对于大多数供应商来说,它是 192.168.1.1。所有连接到该网络的设备都将获得 192.168.1.xxx 类型的 IP。因此,请确保您将系统的 IP 用于此特定网络。
【解决方案3】:

如果一切正常,那么您应该检查您的 Android 应用程序。 您必须添加以下权限才能访问 Internet。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-03
    • 1970-01-01
    • 2011-11-11
    • 1970-01-01
    • 2014-01-14
    • 2013-10-30
    • 1970-01-01
    相关资源
    最近更新 更多