gpt4 book ai didi

java - 蓝牙/WiFi 直接套接字的高级协议(protocol)?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:00:27 24 4
gpt4 key购买 nike

当您在 Android 中使用蓝牙或 WiFi Direct 时,在所有握手等操作结束时,您会得到套接字。

使用 TCP/IP,我们有无数个库,它们位于套接字之上,用于高级协议(protocol):HTTP、XMPP、IMAP 等。感谢这些库,我们可以处理更多域-操作的特定抽象(例如,“下载此文件”),以及由库处理的低级套接字管道。

问题:对于任何高级协议(protocol),是否存在已知可用于(或可能用于)通过 Android 的蓝牙和/或 WiFi Direct 层生成的套接字的等价物?

现在,我对特定协议(protocol)并不挑剔——我只是在寻找此类协议(protocol)层的示例,以使开发人员更轻松地使用这些类型的连接选项。

例如,看起来我可以为 OkHTTP 创建一个分支或附加组件它使用套接字的替代源,我可能会创建一个执行相同操作的 Java HTTP 服务器。考虑到这些,应用程序开发人员将编写通过蓝牙或 WiFi Direct 进行通信的 HTTP 应用程序(并且,至少在客户端,编码在感觉上应该相当“自然”,一旦进行了特定于连接的配对和握手)。

IOW,回到处理原始套接字感觉 so 二十年前......:-)

谢谢!


更新

根据 Kristopher Micinski 对 ZeroMQ 答案的评论,我认为可能需要进行一些澄清。

更容易说出我想要的东西:我不想在创建套接字后接触它们。更高级别的其他东西应该为我处理这些,加上处理我认为是“协议(protocol)”的东西(例如,确定某些通信操作何时结束,超出套接字关闭)。

主要是为了我的书。大多数关于低级套接字内容的书籍示例都是不切实际的,例如“我们打开一个到服务器的套接字并立即开始爆破表示要上传的一些图像的字节,然后在完成后关闭套接字”。虽然这些示例有效,但您在现实生活中永远不会写出这样的东西:

  • 如果您真的在套接字级别工作,您将实现一些希望解决身份验证、错误处理等问题的协议(protocol),即使您自己滚动该协议(protocol)也是如此

  • 如今很少有开发人员直接使用套接字进行 Internet 操作

现在,如果该层提供的协议(protocol)是开发人员习惯使用的(例如 HTTP)或者即使他们没有使用过(例如 XMPP)也听说过的协议(protocol),那就太好了。我将满足于简单的场景(例如,N 路支持很酷但不是必需的)。在这方面,基于初步研究(由 sleep 不足的大脑进行),ZeroMQ 是一个不错的选择。与可以与任意套接字一起使用的 XMPP 堆栈相比,它缺乏一点“品牌知名度”。但它似乎能立即满足我正在寻找的其他东西。

我认识到这些堆栈将受到底层传输的限制(例如,蓝牙仅在 N 值较小时适用于 N 路)。而且我当然不想在这里或在我的书中描绘,无论我描绘的什么解决方案都是基于套接字的通信的全部和最终结果。

我只想要一些祈祷在实际使用中更现实的东西。如果它是我可以理解的东西,则加分,因为我一直使用更高级的协议(protocol)进行 TCP/IP 通信,所以我缺乏直接套接字操作的经验。

最佳答案

我找到了 ZeroMQ用于管理套接字连接。他们支持多种语言,包括 JAVA。一旦通过 wifi-direct 或 BT 建立连接,您就可以使用它来管理套接字。

关于java - 蓝牙/WiFi 直接套接字的高级协议(protocol)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17029299/

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