android - 逻辑 : how to search a local network for a custom service

标签 android ios network-programming upnp

我不熟悉网络术语,所以如果没有正确的关键字,很难搜索到答案。

在了解了媒体服务器的工作原理后,我的好奇心又来了。我想知道有哪些方法可以:

  1. (从客户端,无论是 PC、Android 还是 iOS)向整个网络发送某种“ping”到目标端口
  2. 当服务器/服务在某个端口上确认此 ping 时,它会响应客户端并说“嘿,我在这里!”
  3. 客户端列出已响应的服务器并允许用户选择一个

使用建议的方法,我想知道是否:

  1. 可能无需扫描 192.168.0.1 -> 192.168.1.254 的端口(我认为这非常糟糕)
  2. 有什么注意事项吗?例如可能被利用的安全或逻辑缺陷
  3. 对网络造成不必要的负载(即使只有 2 或 3 个客户端每天搜索一次网络)
  4. (编辑)理想情况下,该解决方案需要潜在非技术用户的最少输入(而不是从客户端按下“查找设备”),因此“它可以正常工作”

如果有现成的问题/答案,请随时指点我。

编辑:从一些额外的研究来看,uPNP 似乎是可行的方法。

最佳答案

严格针对基于网络的媒体服务的可能解决方案是研究标准发现和流媒体协议(protocol),例如 DLNA .

关于android - 逻辑 : how to search a local network for a custom service,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8714384/

相关文章:

java - Android:使 imageView 在动画上可点击

Android Parent and Child Activity onCreate问题

ios - 无法展开我的变量

ios - 使用反射访问模型类的静态变量

ios - UITextFieldDelegate 扩展。获取用户将在 UITextField 中看到的内容。 swift 4

linux - 测量每个接口(interface)的 TX 重传量

java - Android-根据特定条件跳过View pager中的页面

c++ - C++ select() 函数如何在 Unix 操作系统中工作?

network-programming - 你如何在 Go 中有效地使用 net 函数?

java - 在 getInstance() 方法或实例变量定义中初始化单例之间是否存在功能差异