在LAN中从设备向设备发送数据和命令

时间:2013-11-24 13:58:21

标签: android android-networking

在我的应用程序中,我需要将多个(客户端)设备连接到一个(服务器)设备。我需要它在局域网中工作,所以没有远程服务器。 要求是:

必须:

  • 客户端能够找到具有发现功能的服务器(无手动ip输入)
  • 服务器知道哪个客户端已连接的能力
  • 从服务器向客户端发送大量数据(图片等)的能力
  • 能够从服务器向客户端发送命令(以字符串或json的形式),反之亦然

应该:

  • 从客户端向服务器发送大量数据(图片等)的能力
  • 使用短密码加密所有数据和命令的能力

我的googlefu在这次搜索中没有帮助我,我缺乏良好的搜索条件。 我问的不是一些代码,我要求提供一些关于使用哪种技术的建议,以及它在Android中是否可行。一些好的文章或教程非常受欢迎。

1 个答案:

答案 0 :(得分:2)

我建议使用客户端 - 服务器套接字实现。您可以执行an IP broadcast并让您的服务器响应特定客户端。一旦做出初始响应,您就可以按照自己喜欢的方式传输数据。

它基本归结为:

  • 客户端在预设端口上创建连接广播IP的套接字,并侦听传入连接
  • 服务器侦听该端口并响应任何传入连接
  • 客户端收到服务器的响应并回复其客户端身份的详细信息
  • 通过现在建立的套接字连接传输任何其他数据

请记住,通过使用套接字,您将使用裸IP数据报并简单地将其主体提供为原始二进制数据。这意味着您必须手动编写协议,以便处理请求和响应类型,丢弃的数据包以及任何其他IP限制。您可能希望四处寻找TCP实现层或更复杂的目的。