• 大小: 1.59MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-11-14
  • 语言: 数据库
  • 标签: linux  

资源简介

Linux 下服务器与客户端之间的文件传输,利用并发服务器实现多个客户端与服务器之间的交互,利用了linux下的MySQL数据库,实现了登陆界面的注册与登陆。代码简单易懂,很适合初学者

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#include 
#include  
#include 
#include 
#include 

#define MAX_LINE 100
#define BUFFER_SIZE 1024   
#define FILE_NAME 20
#define MAX_NAME 50

void Login_Menu();  //登录成功后选择界面
void sendfile(int client_socket_fd char Send_Filename[]);    //上传文件到服务器
void recvfile(int client_socket_fd char Down_Filename[]); //客户端从服务器下载文件

struct regis    //用户注册信息
{
char flag[10];
char file_name[FILE_NAME];
}SendReg;

struct DIR_FILE    //服务器当前文件夹下所有文件信息
{
char Dir_File[NAME_MAX];
}D_File;

int main(int argc char *argv[])
{
struct sockaddr_in sin;
char buf[MAX_LINE];
int s_fd;
int port = 6666;
int n;

bzero(&sin sizeof(sin));
sin.sin_family = AF_INET;
inet_pton(AF_INET “127.0.0.1“ &sin.sin_addr);
sin.sin_port = htons(port);

if((s_fd = socket(AF_INET SOCK_STREAM 0)) == -1)  //套节子
{
perror(“fail to creat socket\n“);
exit(1);
}

if(connect(s_fd (struct sockaddr *) &sin sizeof(sin)) == -1)
{
perror(“fail to connect\n“);
exit(1);
}
while(1)
{
char Filename[10];
char Send_Filename[BUFFER_SIZE];
char Down_Filename[BUFFER_SIZE];

Login_Menu();  //登录成功后选择界面

scanf(“%s“ Filename);
printf(“\n“);
if(strncmp(Filename “sendfile“ 8) == 0)   //上传文件到服务器
{
strcpy(SendReg.flag “sendfile“);
printf(“Please Input File Name Sendfile On Server:\t“);    
scanf(“%s“ SendReg.file_name); 
n = send(s_fd (struct regis*)&SendReg sizeof(SendReg) 0);
if(n == -1) 
{  
perror(“fail to send\n“); 
exit(1); 
}

strcpy(Send_Filename SendReg.file_name);
sendfile(s_fd Send_Filename);
}
if(strncmp(Filename “lookfile“ 8) == 0)   //查看文件从服务器
{
strcpy(SendReg.flag “lookfile“);
n = send(s_fd (struct regis *)&SendReg sizeof(SendReg) 0);
if(n == -1) 
{  
perror(“fail to send\n“); 
exit(1); 
}
int length = 0;
int n = 0;
printf(“当前文件夹下的所有文件如下:\n\n“);
while((length = recv(s_fd (struct DIR_FILE *)&D_File sizeof(D_File) 0)) > 0)
{
++n;
if(strcmp(D_File.Dir_File “OK“) == 0)
break;
printf(“[ %s ]“ D_File.Dir_File);
if(n % 5 == 0)
printf(“\n“);
}
}
if(strncmp(Filename “downfile“ 8) == 0)   //载文件从服务器
{
strcpy(SendReg.flag “downfile“);
printf(“Please Input File Name Downfile On Server:\t“);    
scanf(“%s“ SendReg.file_name); 
n = send(s_fd (struct regis*)&SendReg sizeof(SendReg) 0);
if(n == -1) 
{  
perror(“fail to send\n“); 
exit(1); 
}
strcpy(Down_Filename SendReg.file_name);
recvfile(s_fd Down_Filename);
}
}
if(close(s_fd) == -1)
{
perror(“fail to close\n“);
exit(1);
}

return 0;
}

void recvfile(int client_socket_fd char Down_Filename[]) //客户端从服务器下载文件
{    
char file_name[FILE_NAME];
char buffer[BUFFER_SIZE];
        
strcpy(file_name Down_Filename);         
// 向服务器发送buffer中的数据    

FILE *fp = fopen(file_na

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2015-05-24 16:49  Linux C下服务器与客户端之间的文件传输\
     目录           0  2015-05-24 17:23  Linux C下服务器与客户端之间的文件传输\不含有linux 下Mysql数据库\
     目录           0  2015-05-24 16:56  Linux C下服务器与客户端之间的文件传输\不含有linux 下Mysql数据库\client\
     文件       23390  2015-05-24 16:26  Linux C下服务器与客户端之间的文件传输\不含有linux 下Mysql数据库\client\2.jpg
     文件       23390  2015-05-24 16:55  Linux C下服务器与客户端之间的文件传输\不含有linux 下Mysql数据库\client\3.jpg
     文件       23390  2015-05-18 21:47  Linux C下服务器与客户端之间的文件传输\不含有linux 下Mysql数据库\client\4.jpg
     文件       23390  2015-05-24 16:26  Linux C下服务器与客户端之间的文件传输\不含有linux 下Mysql数据库\client\5.jpg
     文件       23390  2015-05-18 21:48  Linux C下服务器与客户端之间的文件传输\不含有linux 下Mysql数据库\client\6.jpg
     文件       23390  2015-05-18 21:48  Linux C下服务器与客户端之间的文件传输\不含有linux 下Mysql数据库\client\7.jpg
     文件       23390  2015-05-18 21:48  Linux C下服务器与客户端之间的文件传输\不含有linux 下Mysql数据库\client\8.jpg
     文件       23390  2015-05-18 21:48  Linux C下服务器与客户端之间的文件传输\不含有linux 下Mysql数据库\client\9.jpg
     文件        9198  2015-05-24 16:54  Linux C下服务器与客户端之间的文件传输\不含有linux 下Mysql数据库\client\client
     文件        5669  2015-05-24 16:43  Linux C下服务器与客户端之间的文件传输\不含有linux 下Mysql数据库\client\client.c
     文件          55  2015-04-27 10:08  Linux C下服务器与客户端之间的文件传输\不含有linux 下Mysql数据库\client\makefile
     文件      204929  2015-05-24 16:55  Linux C下服务器与客户端之间的文件传输\不含有linux 下Mysql数据库\client\test.png
     目录           0  2015-05-24 16:56  Linux C下服务器与客户端之间的文件传输\不含有linux 下Mysql数据库\server\
     目录           0  2015-05-24 16:56  Linux C下服务器与客户端之间的文件传输\不含有linux 下Mysql数据库\server\dai\
     文件       23390  2015-05-19 18:29  Linux C下服务器与客户端之间的文件传输\不含有linux 下Mysql数据库\server\dai\2.jpg
     文件       23390  2015-05-24 11:30  Linux C下服务器与客户端之间的文件传输\不含有linux 下Mysql数据库\server\dai\3.jpg
     文件       23390  2015-05-18 21:45  Linux C下服务器与客户端之间的文件传输\不含有linux 下Mysql数据库\server\dai\4.jpg
     文件       23390  2015-05-18 21:46  Linux C下服务器与客户端之间的文件传输\不含有linux 下Mysql数据库\server\dai\5.jpg
     文件       23390  2015-05-24 16:11  Linux C下服务器与客户端之间的文件传输\不含有linux 下Mysql数据库\server\dai\6.jpg
     文件       23462  2015-05-19 15:12  Linux C下服务器与客户端之间的文件传输\不含有linux 下Mysql数据库\server\dai\7.jpg
     文件       23390  2015-04-27 10:10  Linux C下服务器与客户端之间的文件传输\不含有linux 下Mysql数据库\server\dai\8.jpg
     文件       23390  2015-04-27 10:10  Linux C下服务器与客户端之间的文件传输\不含有linux 下Mysql数据库\server\dai\9.jpg
     文件      204929  2015-05-20 16:22  Linux C下服务器与客户端之间的文件传输\不含有linux 下Mysql数据库\server\dai\test.png
     文件          65  2015-05-24 16:25  Linux C下服务器与客户端之间的文件传输\不含有linux 下Mysql数据库\server\makefile
     文件        9771  2015-05-24 16:52  Linux C下服务器与客户端之间的文件传输\不含有linux 下Mysql数据库\server\server
     文件        6467  2015-05-24 16:43  Linux C下服务器与客户端之间的文件传输\不含有linux 下Mysql数据库\server\server.c
     文件       73728  2015-05-24 17:23  Linux C下服务器与客户端之间的文件传输\不含有linux 下Mysql数据库\使用说明.doc
     目录           0  2015-05-24 17:22  Linux C下服务器与客户端之间的文件传输\含有linux 下Mysql数据库\
............此处省略29个文件信息

评论

共有 条评论