2015-01-18 09:59:35|?次阅读|上传:wustguangh【已有?条评论】发表评论
关键词:C/C++, 网络通信|来源:唯设编程网
当客户端在下载/上传文件前,要先发送命令让服务器进入被动模式。服务器会打开数据端口并监听。并返回响应码 227 和数据连接的端口号。
图 3. 客户端让服务器进入被动模式
清单 3. 让服务器进入被动模式,在数据端口监听
/* 命令 ”PASV ” */ sprintf(send_buf,"PASV "); /* 客户端告诉服务器用被动模式 */ write(control_sock, send_buf, strlen(send_buf)); /*客户端接收服务器的响应码和新开的端口号, * 正常为 ”227 Entering passive mode (<h1,h2,h3,h4,p1,p2>)” */ read(control_sock, read_buf, read_len);
当客户端发送命令下载文件。服务器会返回响应码 150,并向数据连接发送文件内容。
图 4. 客户端从FTP服务器端下载文件