概述
TCP实现文件传输
- 客户端
- 服务器
- 测试
- 查看服务器目录文件
- 下载文件
- 上传文件
- 小结
客户端
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#define SEARCH 1 //查目录
#define DOWN 2 //下载
#define FAIL 3 //失败
#define SUCCESS 4 //成功
#define END 5 //查询目录结束
#define UP 6 //上传
struct msg
{
int type; //要执行的操作
int flag; //记录成功或者失败
char buff[128];
char fname[50];
};
//查询目录
int search_serverdir(int sockfd, struct msg info)
{
info.type = SEARCH;
if(send(sockfd, &info, sizeof(info), 0)<0)
{
perror("send");
return -1;
}
while (1)
{
int res=recv(sockfd, &info, sizeof(info), 0);
if(res<0)
{
perror("recv");
return -1;
}
if(0==res)
{
printf("服务器断开连接n");
break;
}
if (info.flag == END)
{
break;
}
printf("%s n", info.buff);
}
printf("n");
return 0;
}
//下载文件
int ftp_download(int sockfd, struct msg info)
{
int res;
info.type = DOWN;
printf("请输入要下载的文件名:");
fgets(info.fname, sizeof(info.fname), stdin);
info.fname[strlen(info.fname) - 1] = '