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( )