【问题标题】:HTTP over UDT in AndroidAndroid 中基于 UDT 的 HTTP
【发布时间】:2014-11-23 23:05:19
【问题描述】:

我有一个自定义的UDT 协议,它在 Android 上运行良好。现在我想实现 HTTP 请求和响应(默认通过 TCP 运行)以在我的应用程序中运行我的 UDT。

  1. 这可能吗?

  2. Android 中是否有任何内置机制来解决这个问题?

  3. 我是否必须修改现有的 android 的 HTTP 堆栈才能完成工作。

有很多协议可以做到这一点。但我不确定 Android。

【问题讨论】:

    标签: android http tcp network-programming udp


    【解决方案1】:
    1. 有可能吗?

    让我们看看RFC 2616(HTTP/1.1 标准):

    HTTP 通信通常通过 TCP/IP 连接进行。默认端口是 TCP 80 [19],但也可以使用其他端口。这并不排除 HTTP 在 Internet 或其他网络上的任何其他协议之上实现。 HTTP 只假定可靠的传输;可以使用任何提供此类保证的协议;

    RFC 明确指出 HTTP 的唯一要求是可靠的传输协议。由于UDT是可靠的,是的,这是可能的。

    1. Android 中是否为此提供了任何内置机制?

    我不是 Android 专家,但我非常怀疑。大多数 HTTP 抽象的重点是向开发人员隐藏协议的细节,让您专注于应用程序逻辑,而不用担心标头和套接字。由于在 TCP 以外的任何东西上的 HTTP 都相当非正统,我真的怀疑是否存在允许您使用非标准传输协议的现有 HTTP 抽象。所以据我所知,答案是否定的(如果有人知道,如果我错了,请纠正我)。

    1. 我是否必须修改现有的 android HTTP 堆栈才能完成工作。

    因为我对 (2) 的回答是否定的,所以我对 (3) 的回答是肯定的。您可能必须修改现有的 HTTP 工具,或编写自己的工具。您可能想要寻找基于 UDP 的 HTTP 实现(这可能是一个更流行的用例)或使用像 netty 这样的工具来实现您自己的自定义协议栈。

    【讨论】:

    • 感谢您的建议。你能帮我开始使用netty在UDT上制作HTTP吗?我已经下载了netty源码并在eclipse上设置了maven环境。
    • @Kishore 1. 抱歉,我不能。虽然我知道 netty,但除了一些 hello-world 类型的东西之外,我实际上并没有使用过它。 2. 您可能希望通过 netty 实现这样的协议成为一个单独的问题,一个带有“netty”标签的问题。
    • 谢谢。我已经发布了问题stackoverflow.com/questions/26409881/…
    • 有没有类似Netty的框架支持Obj-C(Ios)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-23
    • 1970-01-01
    • 1970-01-01
    • 2016-10-19
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    相关资源
    最近更新 更多