我的目标:我想以编程方式将PC的String消息(包含PC的系统时间)广播到两个连接USB的Android手机上。
我的尝试:
(1)我有两个通过USB连接到计算机的Android手机。
(2)我使用“adb -s forward”命令设置计算机端口38300到设备端口38300的转发。
(3)为Android手机编程:基本上,我在端口38300上创建了一个ServerSocket
,设置其超时时间,然后调用accept()
方法。
(4)为PC编程:我使用Socket
创建this.pchost_socket = new Socket("localhost", 38300);
,并使用oos = new ObjectOutputStream(this.pchost_socket.getOutputStream()); oos.writeObject(msg);
发送包含PC系统时间的消息。
问题:
只有一部Android手机(在本例中为067125a40acc819e
)已收到该消息。
最佳答案
您不能通过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 - 如何以编程方式将PC上的String消息广播到多个USB连接的Android手机?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24348032/