【问题标题】:Android socket connection with PC works on Emulator but not on Device与 PC 的 Android 套接字连接适用于模拟器,但不适用于设备
【发布时间】:2012-07-20 21:37:57
【问题描述】:

我正在运行一个小示例,它通过套接字从 Android 设备向 PC 发送消息。 服务器是 C++,使用来自 this 链接的示例,客户端是一个简单的 Android 应用程序。

我遇到的问题是,当我在我的 PC(Eclipse 模拟器上的 android 应用程序)上运行两者时,它可以正常工作,但是当我使用 android 设备时,由于连接超时,我不断收到 java.net.ConnectException .

起初我认为这可能是防火墙问题,但我创建了一个规则,允许通过我正在使用的端口进行通信,并且事情一直以相同的方式工作。我试图关闭防火墙以防万一,但什么也没发生。

我已经从 Android ping 过 PC,反之亦然,一切都很好。

关于我可能缺少什么的任何想法?两个设备当然在同一个网络上!

提前致谢。

【问题讨论】:

    标签: android sockets


    【解决方案1】:

    首先,我认为通过 Socket 混合 Java 和 C++ 数据并不是一个好主意(我不确定 int、float 和那种类型在双方是否相等)。

    不过,您是否在 Android XML Manifest 中授予了 Internet 权限?

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

    能否请您提供有关服务器和 Android 代码的更多详细信息?

    谢谢!

    【讨论】:

    • 感谢您的回答。我只是发送字符串,它在 pc 和 Eclipse 的模拟器上运行时效果很好。关于代码,到服务器的链接是有问题的,我的android客户端就像网络上的每个客户端一样。用服务器和端口的地址打开套接字。当然是在异步任务上运行。我稍后会尝试发布它我现在在我的手机上:)
    【解决方案2】:

    似乎有某种防火墙阻止了 Windows 以外的传入请求。我尝试了相反的方法,从 Windows 端开始通信,一切都像魅力一样!

    【讨论】:

      猜你喜欢
      • 2020-01-16
      • 2013-09-17
      • 1970-01-01
      • 2021-02-15
      • 1970-01-01
      • 2012-11-01
      • 2011-03-08
      • 2015-02-13
      • 2011-03-20
      相关资源
      最近更新 更多