2014-09-29 64 views
1

我有一個定製的UDT協議,它在Android上運行良好。現在我想實現HTTP請求和響應(默認情況下通過TCP運行)從我的應用程序運行在我的UDT上。Android上的HTTP over UDT

  1. 這可能嗎?

  2. Android中有沒有內置的機制?

  3. 我是否需要修改現有的Android安卓平臺來完成工作。

有很多協議是這樣做的。但我不確定Android。

回答

2
  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 android HTTP堆棧以完成工作。

由於我對(2)的回答是否定的,我對(3)的回答是肯定的。您可能需要修改現有的HTTP工具,或者編寫自己的工具。您可能希望查找基於UDP的HTTP實現(這可能是一個比較流行的用例),或者使用像netty這樣的工具來實現您自己的自定義協議棧。

+0

謝謝你的建議。你能幫我開始使用netty來通過UDT進行HTTP嗎?我已經下載了netty源代碼並在eclipse上設置了maven環境。 – Kishore 2014-10-16 16:57:33

+0

@Kishore 1.對不起,但我不能。雖然我知道netty,但實際上我並沒有使用它來超越一些你好世界的東西。 2。您可能希望通過netty將這樣一個協議的實現變成一個單獨的問題,用「netty」標記標記。 – Malt 2014-10-17 15:07:37

+0

謝謝。我已經發布了這個問題http://stackoverflow.com/questions/26409881/http-request-and-response-over-udt-on-android – Kishore 2014-10-17 15:18:46