FTP 即 文件傳送協議( File Transfer Protocol ),用於在互聯網的兩個主機間實現文件互傳的網絡應用的應用層協議。
FTP的服務器進程由兩大部分組成:
1. 主進程, 負責接受新的客戶請求;
2. 從屬進程, 負責處理單個客戶請求, 與具體客戶進行交互。
FTP客戶與服務器之間的連接分爲兩種:
1. 控制連接,專門用於用戶登錄、服務器授權,爲持久連接;
2. 數據連接,專門用於文件傳輸,爲臨時連接。
FTP專門使用一個獨立的控制連接傳輸控制信息, 與傳輸文件信息進行分離, 所以將FTP這種控制信息的傳送方式稱爲帶外控制。
FTP是有狀態的協議, FTP的命令都是可讀的,例如:USER、PASS、LIST。
P2P 即 Peer to peer,近年來很多性能表現優異, 深受用戶喜愛的P2P應用層出不窮。例如:BitTorrent、 PPLive和PPstream等。
P2P應用特點:
1. 應用的對等方是用戶的計算機;
2. 很強的應用規模伸縮性;
3. 應用在對等方之間進行;
4. 應用充分聚集利用了端系統的計算能力以及網絡傳輸寬帶。
套接字(Socket) : 典型的網絡應用編程接口。
端口號: 標識套接字。
常見端口號:
常用Socket API 函數:
1. 創建套接字:socket( )
2. 綁定套接字的本地端點地址: bind( )
3. 設置監聽: listen( )
4. 建立連接:
(1). TCP客戶端: connect( )
(2). TCP服務端: accept( )
5. 接收數據:
(1). TCP客戶端:recv( )
(2). TCP服務端:recvfrom( )
6. 發送數據:
(1). TCP客戶端:send( )
(2). TCP服務端:sendto( )
7.關閉套接字: close( )