【问题标题】:How to send data from python script through Internet to android app and vice versa.如何通过互联网将数据从 python 脚本发送到 android 应用程序,反之亦然。
【发布时间】:2015-11-06 12:37:18
【问题描述】:

我正在用 python 编写树莓派。我想通过互联网控制我的 pi,因为我需要将数据从我的 android 应用程序发送到我的 Pi 上正在运行的 python 脚本。例如,如果我单击我的 android 应用程序上的按钮 B,树莓派的 python 脚本应该通过 Internet 以字符串或整数的形式获取数据“12345”。我将比较接收到的数据并在 python 中采取所需的操作。同样,反之亦然。如果我单击 tkinter 创建的 python 中的一个按钮,python 应该通过 Internet 将一些数据说“67890”作为字符串或整数发送到我的 android 应用程序。我将比较我的 android 应用程序接收到的数据并采取必要的措施。在 java 中创建的 android 应用程序和 Pi 上的 python 脚本之间发送和接收数据的持续过程应该继续。我已经创建了没有这个通信部分的 python 程序和 android 应用程序。怎么可能进行数据发送??

【问题讨论】:

    标签: java android python python-2.7 raspberry-pi


    【解决方案1】:

    您不应该从通过 Internet 进行通信开始。一开始可以使用您的本地 WiFi(代码保持不变,但您不能将您的 RPi 设置为具有 DynDNS 之类的服务器。如果您不知道自己在做什么,这也是很危险的'正在做)。

    然后从 python 部分开始。您的 Pi 充当应用程序的服务器。所以看看 ServerSockets with Python:like this example。在这里,您定义了您的服务运行的端口。 您的 python 代码现在将在该端口上等待传入连接。

    现在您需要在您的 Android 设备上连接到该 Socket。

    Socket sock = new Socket("IP-ADDRESS_OF_YOUR_RPi", PORT);
    

    现在您的 Android 已通过本地 WiFi 与您的 RPi 连接(假设两者在同一个网络中)

    然后,您可以通过 Android-App 和 Python-Server 之间的 Input- 和 Outputstreams 进行通信。

    但是您绝对应该对服务器-客户端和 TCP 套接字通信进行一些研究。将此应用程序连接到 Internet 是您应该做的最后一步(因为 Internet 上服务器上的开放端口是对犯罪分子的邀请)。

    【讨论】:

    • 谢谢。 python服务器和客户端正在工作。但是,如果我在 Android Studio 中打开 android 模拟器并在 Eclipse 中打开 Python 服务器,当我将我的 android 应用程序作为客户端并尝试发送数据时,它会崩溃,myapp 不幸停止工作。是因为需要在 Windows 上的软件外部进行一些设置才能发生这种情况,还是我的 android 代码错误?我什至从清单授予了 android 应用 Internet 和 Wifi 权限。
    • 您应该查看您的 android-app 的“logcat”以找出错误所在。消息“应用程序停止工作”并没有告诉我们任何事情。 logcat 应该在您的应用程序崩溃时运行。你有你的错误消息和堆栈跟踪。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多