gpt4 book ai didi

android - 如何以编程方式将 String 消息从 PC 广播到多个 USB 连接的 Android 手机?

转载 作者:行者123 更新时间:2023-11-30 02:50:09 25 4
gpt4 key购买 nike

我的目标:我想以编程方式从 PC 向两部 USB 连接的 Android 手机广播字符串消息(包含 PC 的系统时间)。

我的尝试:

(1) 我有两部 Android 手机通过 USB 连接到电脑。

adb-devices

(2)我使用“adb -s forward”命令设置电脑38300端口到设备38300端口的转发。

adb-forward

(3) Android 手机编程:基本上,我在端口 38300 上创建一个 ServerSocket,设置它的超时时间,然后调用 accept() 方法。

(4) PC 编程:我使用 this.pchost_socket = new Socket("localhost", 38300); 创建了 Socket,消息包含使用 oos = new ObjectOutputStream(this.pchost_socket.getOutputStream()); 发送 PC 的系统时间; oos.writeObject(msg);.

问题:

只有一部 Android 手机(在本例中为手机 067125a40acc819e)收到了消息。

(1) Is this the default behaviour of communication via USB/ADB?
(2) How to programmatically broadcast a String message from PC to multiple USB-attached Android phones? (It is not necessary to use Socket programming.)

最佳答案

您不能通过 ADB 在主机上多播端口;您的第二个 adb forward 命令从第一个设备窃取端口 38300 并将其分配给第二个。如果您想继续使用此解决方案,您可以做的是将您的系统设计为使用一系列端口,从 38300(或您喜欢的任何端口)开始。设备 1 获得 38300,​​设备 2 获得 38301,设备 3 获得 38302,依此类推。在设备端,为所有设备使用相同的端口号,以简化您的应用程序设计。

adb -s <device1> forward tcp:38300 tcp:38300
adb -s <device2> forward tcp:38301 tcp:38300
adb -s <device3> forward tcp:38302 tcp:38300
adb -s <device4> forward tcp:38303 tcp:38300

然后您将需要您的 PC 软件连接到 PC 上的所有开放端口并发送消息。

关于android - 如何以编程方式将 String 消息从 PC 广播到多个 USB 连接的 Android 手机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24348032/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com