2011-04-18 80 views
2

我編寫了一個Java應用程序,用於我的Android手機,它使用套接字連接來發送和接收文本數據,它使用的很好,它使用PrintWriterBufferedReader很多人在使用HTTP連接的過程中說過。我希望能夠通過這個機會來確定HTTP與Sockets的區別在哪裏,所以我希望你能幫助我解決以下問題。HTTP和套接字:

1)我創建使用以下

服務器端的套接字連接:

serverSocket = new ServerSocket(4444); 

客戶端:

clientSocket = new Socket(address, portNumber); 

那麼會是什麼HTTP相當於在客戶端和服務器上雙方?

2)從客戶端發送數據給我做了以下服務器:

pw = new PrintWriter(clientSocket.getOutputStream(),true); 

    pw.write(AStringVariableInThisCase+"\n"); 
    pw.flush(); 

什麼將是一個HTTP連接中的正確方式?

3)收到從客戶端發送的數據,在服務器端我做到以下幾點:

BufferedReader br = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); 
    String language = br.readLine(); 

什麼是等價使用HTTP連接?

我設計的程序允許數據通過服務器使用自己的一組類來回傳遞,並繼續使用PrintWriter和BuferedReader來完成。

感謝您的任何幫助,您可以分辨差異。

回答

0

主要區別在於HTTP的結構是一個事務而不是一個連接。交易的客戶端必須提供具有特定格式和信息的標題,並且回覆將以一些標題行開始。一個事務完成後,HTTP通常關閉 連接。

2

HTTP是協議。它(通常)通過套接字使用。

Java提供了HttpUrlConnection class,以便通過套接字使用HTTP。

+0

嗨,布萊恩,所以我會繼續使用套接字連接,同時以不同的方式提供數據? – 2011-04-19 21:02:09