(1)什么是HTTP協議
超文本傳輸協議(HTTP,HyperText Transfer Protocol) 是互聯網上應用最為廣泛的一種網絡協議
(2)IP協議
IP是在TCP/IP協議層的主要協議,任務是根據原主機和目的主機的地址傳送數據,IP定義了尋址方法和數據報的封裝結構。
(3)TCP協議
傳輸控制協議是一種面向連接的、可靠的、基于字節流的傳輸層通信協議。TCP協議把數據流分成適當長度的報文段。之后TCP把結果包傳輸給網絡層,由它來通過網絡將包傳送給接收端實體的傳輸層。TCP為了保證不發生丟包,就給每個包一個序號,同時序號也保證了傳送到接收端實體的包能按順序接收。然后接收端實體為已成功收到的包發回一個相應的確認;如果發送端實體在合理的往返延時內為收到確認,那么對應的數據包將會被重傳。
(4)UDP協議
- 用戶數據報協議是TCP/IP模型中一種面向無連接的傳輸層協議。提供面向事務的簡單不可靠信息傳送服務。UDP協議適用于端口分別運行在同一臺設備上的多個應用程序中。
- 與TCP不同,UDP并不提供對IP協議的可靠機制、流控制以及錯誤恢復功能,在數據傳輸之前不需要建立連接,比TCP的負載消耗少。適用于不需要可靠機制的情形。
(5)Socket基礎
- Socket通常稱為套接字,它是一組接口。Socket把復雜的TCP/IP協議族隱藏在Socket接口后面,對用戶來說一組簡單的接口就是全部。讓Socket去組織數據,以符合指定的協議。
- Socket的基本操作:連接遠程機器、發送數據、接收數據、關閉連接、綁定端口、監聽到達數據、在綁定的端口上接收來自遠程機器的連接。
- 客戶端可以實現連接遠程機器、發送數據、接收數據、關閉連接等,服務器還需要實現綁定接口、監聽到達的數據、接收來自遠程機器的連接(服務端和客戶端兩個類:ServerSocket和Socket)
ServerSocket的構造方法:
ServerSocket():構造一個新的未綁定的ServerSocket
ServerSocket(int port):構造一個新的ServerSocket并綁定到指定端口。如果參數port為0,端口將有系統自動分配,此時進入隊列的數目將被設置為50。
ServerSocket(int port,int backlog):構造一個新的ServerSocket并綁定到指定端口,并指定進入隊列的數目。如果參數port為0,端口將有系統自動分配。
ServerSocket(int port,int backlog,InetAddress localAddress):構造一個新的ServerSocket并綁定到指定端口和指定地址。如果localAddress參數為null,則可以使用任意地址。如果參數port為0,端口將有系統自動分配。
ServerSocket的重要方法:
public InputStream getInputStream():讀出該Socket中的數據
public OutputStream getOutputStream():向該Socket中寫入數據
public Socket accept():等待Socket請求,直到連接被打開,該方法返回一個剛剛被打開的連接Socke(客戶端)t對象。
public void close():關閉該服務器Socket
Socket的構造方法:
Socket():構造一個新的未連接的Socket。
Socket(Proxy proxy):使用一個指定的代理類型創建一個新的未連接的Socket
Socket(String dstName, int dstPort):使用指定的目標服務器的IP地址和目標服務器的端口號,創建一個新的Socket。
Socket(String dstName, int dstPort,InetAddress localAddress,int localPort):使用指定的目標主機、目標端口、本地地址和本地端口,創建一個新的Socket。
Socket(InetAddress dstAddress,int dstPort):使用用指定的本地地址和本地端口,創建一個新的Socket。
Socket(InetAddress dstAddress,int dstPort,InetAddress localAddress,int localPort):使用指定的目標主機、目標端口、本地地址和本地端口,創建一個新的Socket。