2014-09-29 4 views
1

У меня есть настроенный протокол UDT, который отлично работает на Android. Теперь я хочу реализовать HTTP-запрос и ответ (выполняется по TCP по умолчанию) для запуска моего UDT из моего приложения.HTTP over UDT в Android

  1. Возможно ли это?

  2. Есть ли встроенный механизм в Android для этого?

  3. Должен ли я изменить существующий стек HTTP андроида, чтобы выполнить эту работу.

Существует много протоколов, которые делают это. Но я не уверен в Android.

ответ

2
  1. Возможно ли это?

Давайте посмотрим на RFC 2616 (в/стандарт HTTP 1.1):

HTTP соединение обычно происходит через соединения TCP/IP. Порт по умолчанию - TCP 80 [19], но могут использоваться другие порты. Это не исключает возможности реализации HTTP поверх любого другого протокола в Интернете или других сетей. HTTP только предполагает надежный транспорт; любой протокол, предоставляющий такие гарантии, может быть использован;

RFC четко заявляет, что единственным требованием HTTP является надежный транспортный протокол. Поскольку UDT является надежным, да, это возможно.

  1. Есть ли встроенный механизм в Android для этого?

Я не специалист по Android, но я очень сомневаюсь в этом. Точка большинства абстракций HTTP заключается в том, чтобы скрыть подробные сведения о протоколе nitty gritty от разработчика и позволить вам сосредоточиться на логике приложения, а не беспокоиться о заголовках и сокетах. Поскольку HTTP по всему, что не является TCP, является довольно неортодоксальным, я действительно сомневаюсь, что существуют существующие абстракции HTTP, которые позволяют использовать нестандартные транспортные протоколы. Так что, насколько мне известно, ответ - нет (если кто-то знает иначе, исправьте меня, если я ошибаюсь).

  1. Должен ли я изменить существующий стек HTTP андроида, чтобы выполнить эту работу.

Поскольку мой ответ на (2) нет, мой ответ на вопрос (3) да. Возможно, вам придется изменить существующие инструменты HTTP или написать свои собственные. Возможно, вам захочется найти реализации HTTP через UDP (это может быть несколько более популярный вариант использования) или использовать инструмент, например, netty для реализации собственного пользовательского стека протоколов.

+0

Благодарим за предложение. Не могли бы вы помочь мне начать работу с netty, чтобы сделать HTTP через UDT. Я загрузил источник netty и настроил среду maven на eclipse. – Kishore

+0

@ Kishore 1. Извините, но я не могу. В то время как я знаю нетто, я фактически не использовал его за пределами какого-то приветственного мира. 2.Возможно, вы захотите сделать реализацию такого протокола по netty отдельным вопросом, который помечен тегом «netty». – Malt

+0

Спасибо. Я уже разместил вопрос http://stackoverflow.com/questions/26409881/http-request-and-response-over-udt-on-android – Kishore