不同机器上的Activity和远程服务之间的连接

时间:2012-06-09 13:18:25

标签: android sockets service android-activity aidl

我已经实现了一个带有活动和远程服务的android程序。该活动使用AIDL与服务进行通信和交互,但是在同一台机器上,并且知道它们使用IPC机制相互通信。现在,我想将它们放在不同的机器上并在它们之间建立连接。我正在尝试使用socket来建立连接,但我不知道如何做到这一点。如何启动/停止和绑定在不同计算机上运行的服务?插座是这种情况的最佳选择还是有其他更好的解决方案?我是否需要更改Android OS上的Binder类来处理这个问题?如果你能帮助我找到解决方案,我将不胜感激。

谢谢, RA

1 个答案:

答案 0 :(得分:2)

  

如何启动/停止和绑定在不同机器上运行的服务?

你没有。

  

套接字是这种情况的最佳选择,还是有其他更好的解决方案?

直接的设备到设备通信通常不可能通过因特网,除非它们由于NAT限制等而在相同的WiFi路由段上。这与直接PC到PC通信的问题没有什么不同,还有一个额外的挑战,即您通常无法控制所涉及的防火墙。大多数解决方案涉及在中间使用服务器,充当代理或代理。

  

我是否需要更改Android操作系统上的Binder类来处理此问题?

您无需使用BinderBinder是IPC(进程间通信),而不是RPC(远程过程调用)。