使用 Socket 通信实现 FTP 客户端程序

2015-01-18 09:59:35|?次阅读|上传:wustguangh【已有?条评论】发表评论

关键词:C/C++, 网络通信|来源:唯设编程网

清单 4. 客户端连接到 FTP 服务器的数据端口并下载文件

/* 连接服务器新开的数据端口 */

connect(data_sock,(struct sockaddr *)&server, sizeof(server));

/* 命令 ”CWD dirname
” */

sprintf(send_buf,"CWD %s
", dirname);

/* 客户端发送命令改变工作目录 */

write(control_sock, send_buf, strlen(send_buf));

/* 客户端接收服务器的响应码和信息,正常为 ”250 Command okay.” */

read(control_sock, read_buf, read_len);



/* 命令 ”SIZE filename
” */

sprintf(send_buf,"SIZE %s
",filename);

/* 客户端发送命令从服务器端得到下载文件的大小 */

write(control_sock, send_buf, strlen(send_buf));

/* 客户端接收服务器的响应码和信息,正常为 ”213 <size>” */

read(control_sock, read_buf, read_len);



/* 命令 ”RETR filename
” */

sprintf(send_buf,"RETR %s
",filename);

/* 客户端发送命令从服务器端下载文件 */

write(control_sock, send_buf, strlen(send_buf));

/* 客户端接收服务器的响应码和信息,正常为 ”150 Opening data connection.” */

read(control_sock, read_buf, read_len);



/* 客户端创建文件 */

file_handle = open(disk_name, CRFLAGS, RWXALL);

for( ; ; ) {

... ...

/* 客户端通过数据连接 从服务器接收文件内容 */

read(data_sock, read_buf, read_len);

/* 客户端写文件 */

write(file_handle, read_buf, read_len);

... ...    

}

/* 客户端关闭文件 */

rc = close(file_handle);
发表评论0条 】
网友评论(共?条评论)..
使用 Socket 通信实现 FTP 客户端程序