嵌入式客户端向服务器端上传文件

 时间:2024-10-19 02:21:27

随着社会的发展,一些软硬件结合的科技走入了人们的生活,智能等,让人们的生活越来越便捷!嵌入式的应用愈加的重要起来!

工具/原料

电脑

认真

方法/步骤

1、客户端的代码:(先运行服务器端,并且新建一个1.txt文件:Hell艺皱麾酪oworld!)#include<stdio.h&爿讥旌护gt;#include<sys/types.h>#include<sys/stat.h>#include<fcntl.h>#include<string.h>#include<unistd.h>#include<arpa/inet.h>intmain(){structsockaddr_inservAddr;memset(&servAddr,0,sizeof(servAddr));servAddr.sin_family=PF_INET;servAddr.sin_port=htons(8888);servAddr.sin_addr.s_addr=inet_addr("127.0.0.1");//socketintcliFd=socket(PF_INET,SOCK_STREAM,0);if(-1==cliFd){perror("socketerror!");return-1;}//connectintret=connect(cliFd,(structsockaddr*)&servAddr,sizeof(servAddr));if(-1==ret){perror("connecterror!");close(cliFd);return-1;}printf("connectok!\n");charfile[100];printf("请输入要传送的文件名:\n");gets(file);intfd=open(file,O_RDONLY);//打开文件,读文件if(-1==fd){perror("openfileerror!\n");return-1;}charbuf[100];memset(buf,0,sizeof(buf));//清空申请的内存空间while(1){intre=read(fd,buf,sizeof(buf));if(0==re){break;}send(cliFd,buf,re,0);}return0;}

嵌入式客户端向服务器端上传文件

2、服务器端代码:#include<stdio.h>拭貉强跳#include<sys/types.h>#include<sys/socket.h>稆糨孝汶;#include<arpa/inet.h>#include<string.h>#include<sys/stat.h>#include<fcntl.h>#include<unistd.h>intmain(){structsockaddr_inservAdder;memset(&servAdder,0,sizeof(servAdder));servAdder.sin_family=PF_INET;servAdder.sin_port=htons(8888);servAdder.sin_addr.s_addr=inet_addr("127.0.0.1");//socketintservFd=socket(PF_INET,SOCK_STREAM,0);if(-1==servFd){perror("socketerror\n");return-1;}printf("socketok\n");//bindintret=bind(servFd,(structsockadder*)&servAdder,sizeof(servAdder));if(-1==ret){perror("binderror");return-1;}printf("bindok\n");//listenret=listen(servFd,10);if(-1==ret){perror("listenerror");return-1;}printf("listenok!\n");//acceptintconnFd=accept(servFd,NULL,NULL);//对方的地址信息和长度,连接套接字if(-1==connFd){perror("accepterror\n");return-1;}printf("acceptok!\n");intfd=open("server.txt",O_WRONLY|O_CREAT,0666);if(fd<0){perror("openfileerror\n");return-1;}charbuf[1024]={0};memset(buf,0,sizeof(buf));//清空申请的内存空间while(1){intrec=recv(connFd,buf,sizeof(buf),0);if(0==rec){break;}write(fd,buf,rec);}printf("filecopysuccess\n");//printf("Allowedcontentsofflies:\n");//puts(buf);close(fd);close(servFd);close(connFd);return0;}

嵌入式客户端向服务器端上传文件

3、主要设计步骤:(1)创建套接字(不同主机之间的进程进行双向通信的端点)(2)绑定地址信息(bind)(3)发起连接请求(connect)(4)收发消息(send/recv)(5)关闭通信(close)

嵌入式客户端向服务器端上传文件

4、上传文件思路:服务器端:打开文件while(1){接受客户端的消息recvIf(recv的返回值为0){break;}将接受到的消息,写入文件}客户端:打开文件openwhile(1){读文件readIf(read返回值为0){break;}将读到的内容发送给服务器}

嵌入式客户端向服务器端上传文件

5、根据思路写出上传文件的实现代码:服务器端:intfd=open("server.txt",O_WRONLY|O_CREAT,0666);if(fd<0){perror("openfileerror\n");return-1;}charbuf[1024]={0};memset(buf,0,sizeof(buf));//清空申请的内存空间while(1){intrec=recv(connFd,buf,sizeof(buf),0);if(0==rec){break;}write(fd,buf,rec);}printf("filecopysuccess\n");//printf("Allowedcontentsofflies:\n");//puts(buf);客户端:intfd=open(file,O_RDONLY);//打开文件,读文件if(-1==fd){perror("openfileerror!\n");return-1;}charbuf[100];memset(buf,0,sizeof(buf));//清空申请的内存空间while(1){intre=read(fd,buf,sizeof(buf));if(0==re){break;}send(cliFd,buf,re,0);}

嵌入式客户端向服务器端上传文件

在EPLAN里面添加向上端子 matlab2010证书过期解决办法 VS中如何设置加粗所选选项卡上的文本 PotPlayer怎样开启使用时间跳移功能 VS2013,VS2015各版本如何打开graphics.h头文件
热门搜索
早期肠癌大便图片 神装少女小缠 一箭穿心图片 上海图片 酒瓶图片