計算機網絡應用:FTP、P2P、Socket編程

1. FTP

FTP 即 文件傳送協議( File Transfer Protocol ),用於在互聯網的兩個主機間實現文件互傳的網絡應用的應用層協議。

FTP的服務器進程由兩大部分組成:

1. 主進程, 負責接受新的客戶請求;

2. 從屬進程, 負責處理單個客戶請求, 與具體客戶進行交互。

FTP客戶與服務器之間的連接分爲兩種:

1. 控制連接,專門用於用戶登錄、服務器授權,爲持久連接;

2. 數據連接,專門用於文件傳輸,爲臨時連接。

FTP專門使用一個獨立的控制連接傳輸控制信息, 與傳輸文件信息進行分離, 所以將FTP這種控制信息的傳送方式稱爲帶外控制

FTP是有狀態的協議, FTP的命令都是可讀的,例如:USER、PASS、LIST。

 

2. P2P

P2P 即 Peer to peer,近年來很多性能表現優異, 深受用戶喜愛的P2P應用層出不窮。例如:BitTorrent、 PPLive和PPstream等。

P2P應用特點:

1. 應用的對等方是用戶的計算機;

2. 很強的應用規模伸縮性;

3. 應用在對等方之間進行;

4. 應用充分聚集利用了端系統的計算能力以及網絡傳輸寬帶。

 

3. Socket編程基礎

套接字(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( )