回覆列表
  • 1 # 使用者6484034300502

    抽象一點的說,Socket只是一個供上層呼叫的抽象介面,隱躲了傳輸層協議的細節。 urlconnection 基於Http協議,Http協議是應用層協議,對傳輸層Tcp協議進行了封裝,是無狀態協議,不需要你往考慮執行緒、同步、狀態治理等,內部是透過socket進行連線和收發資料的,不過一般在資料傳輸完成之後需要封閉socket連線。 直接使用Socket進行網路通訊得考慮執行緒治理、客戶狀態監控等,但是不用傳送頭資訊等,更省流量。

  • 2 # 山東中公優就業

    1、Socket只是一個供上層呼叫的抽象介面,隱躲了傳輸層協議的細節。urlconnection 基於Http協議,Http協議是應用層協議,對傳輸層Tcp協議進行了封裝,是無狀態協議,不需要你往考慮執行緒、同步、狀態治理等。

    2、SocketSocket是底層實現,協議你要自己去寫,不侷限於http,可以是任何協議。Socket 的連線是有狀態的,一旦兩邊連線上了,將一直保持連線,除非人為斷開。一般用於遊戲,需要持續的網路暢通。

    3、URLConnectionURLConnection和HttpURLConnection使用的都是java.net中的類,屬於標準的java介面。httpurlconnection是對socket的封裝。類似httpclient,ftpClient,URLConnetcion之類的,是對專屬協議的封裝。HttpURLConnection繼承自URLConnection,差別在與HttpURLConnection僅僅針對Http連線。HttpURLConnection或URLConnection連線完成後不會保持連線狀態。例如瀏覽器訪問網址,頁面載入完成後,將斷開連線,如果再點選,會再次連線。

  • 中秋節和大豐收的關聯?
  • 阿米巴有什麼用?