资源简介
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个文件信息
- 上一篇:SQL帮助文档.chm
- 下一篇:耗材管控系统.7z
相关资源
- windows、linux下sqlite远程管理工具及服
- Oracle12cR2双节点RAC在Linux7环境下的部署
- sqlite3Linux版本
- Oracle Linux 6.5 服务器 安装 Oracle 11.2.
- MySQL-shared-compat-5.6.36-1.linux_glibc2.5.x8
- linux下qt做的一个订餐管理系统sqlite的
- Ecology8安装部署手册_Linux_Oracle_2018V1
- linux下安装oracle 12c client
- rlwrap-0.42.tar.gz-Linux下的SqlPlus必备
- Linux System Programming 2nd edition.pdf
- Linux下的MySQL依赖包(所有perl).rar
- Oracle 11g for linux安装指南
- linux电子词典项目(sqlite3数据库)
- 一步一步在Linux上部署Oracle 11.2.0.3 R
- mysql-3.23.58-pc-linux-i686.tar.gz
-
linux的rpm包aaa_ba
se - Oracle 11g RAC+DG 非常牛逼的部署手册
- oracle bbed包
- oracle11g 安装依赖包redhat 6.9 64位
- Linux+Oracle 11g+RAC+12cc+adg中国史上最详细
- SUSE Linux 11上安装Oracle 11g的详细步骤
- Linux--Oracle-11g-R2-RAC-安装配置详细过程
- linux 上的 mysql 连接驱动类文件包
- LinuxCentOS7.3系统从入门到精通完整版
- arm环境下执行的sqlcipher
- Linux下Oracle 11g数据库安装
- oracle linux7.2 安装oracle 11.2.0.4全过程图
- Linux_UNIX OpenLDAP实战指南.pdf
- Introduction to Linux A Hands on Guide 中文版
- PLX PCI卡 linux驱动
评论
共有 条评论