当前位置: 首页 > news >正文

施工员证查询官方网站合肥百度竞价推广代理公司

施工员证查询官方网站,合肥百度竞价推广代理公司,网站建设服务器选择,佛山企业网站目录 作业要求#xff1a;基于UDP的TFTP文件传输 代码 下载功能效果图​编辑 上传功能效果图 思维导图 模拟面试题和答案#xff08;定期更新#xff09; 作业要求#xff1a;基于UDP的TFTP文件传输 完成文件的上传和下载功能 代码 #includemyhead.h//实现…目录 作业要求基于UDP的TFTP文件传输 代码 下载功能效果图​编辑 上传功能效果图 思维导图 模拟面试题和答案定期更新 作业要求基于UDP的TFTP文件传输 完成文件的上传和下载功能 代码 #includemyhead.h//实现下载功能 int do_download(int cfd, struct sockaddr_in sin) {//定义变量存储下载请求包char buf[516] ;//定义变量存储文件名char fileName[40] ;printf(请输入文件名);scanf(%s, fileName);getchar();//组装请求包short *p1 (short *)buf;*p1 htons(1); //写1表明要下载char *p2 buf2; //文件名段strcpy(p2, fileName);char *p3 p2strlen(p2)1; //模式段strcpy(p3, octet);int size 4 strlen(p2) strlen(p3); //要发送的请求包的大小//向服务器发送下载请求if(sendto(cfd, buf, size, 0, (struct sockaddr*)sin, sizeof(sin)) -1){perror(sendto error);return -1;}printf(请求成功\n);socklen_t socklen sizeof(sin);//打开一文件接受下载文件int fd open(fileName,O_RDWR|O_TRUNC|O_CREAT,0666);if(fd0){perror(open error);return -1;}int res;while(1){//接受数据包bzero(buf,sizeof(buf));res recvfrom(cfd,buf,sizeof(buf),0,(struct sockaddr*)sin,socklen);if(res0){perror(recvfrom error);return -1;}if(buf[1]3){//写入文件if(write(fd,buf4,res-4)0){perror(write);return -1;}//构造ACKbuf[1] 4;//发送ACKif(sendto(cfd,buf,4,0,(struct sockaddr*)sin,sizeof(sin))0){perror(sendto);return -1;}//判断数据包中的数据大小if(res-4512){printf(%s 下载完毕\n,fileName);break;}}else if(buf[1]5){printf(%d %s\n,ntohs(*(short*)(buf2)),buf4);break;}}close(fd); return 0; }//实现上传功能 int do_upload(int cfd,struct sockaddr_in sin) {//定义变量存储上传请求包char buf[516] ;//定义变量存储文件名char fileName[40] ;printf(请输入文件名);scanf(%s, fileName);getchar();//组装请求包short *p1 (short *)buf;*p1 htons(2); //写2表明要上传char *p2 buf2; //文件名段strcpy(p2, fileName);char *p3 p2strlen(p2)1; //模式段strcpy(p3, octet);int size 4 strlen(p2) strlen(p3); //要发送的请求包的大小//向服务器发送上传请求if(sendto(cfd, buf, size, 0, (struct sockaddr*)sin, sizeof(sin)) -1){perror(sendto error);return -1;}printf(请求成功\n);socklen_t socklen sizeof(sin);//打开准备上传的文件int fd open(fileName,O_RDONLY);if(fd0){perror(open error);return -1;}int res1,res2;int kbh 1;while(1){//接受数据包bzero(buf,sizeof(buf));res1 recvfrom(cfd,buf,4,0,(struct sockaddr*)sin,socklen);if(res1 0){perror(recvfrom error);return -1;}//判断是否接收到服务器发来的ACKif(buf[1]4){//填充发送的数据包buf[1] 3;buf[3] kbh;res2 read(fd,buf4,512);if(res2 0){perror(read error);return -1;} //向服务器发送数据包if(sendto(cfd,buf,sizeof(buf),0,(struct sockaddr*)sin,sizeof(sin)) -1){perror(sendto error);return -1;}//发一次块编号加一一次kbh;//循环退出条件if(res2 512){close(fd);printf(文件上传完毕\n);break;}}else if(buf[1]5){printf(%d %s\n,ntohs(*(short*)(buf2)),buf4);break;}}return 0; } int main(int argc, const char *argv[]) {if(argc ! 2){printf(input error\n);printf(usage:./a.out ip\n);return -1;}//1、创建套接字int cfd socket(AF_INET, SOCK_DGRAM, 0);if(cfd -1){perror(socket error);return -1;}//2、填充服务器地址信息结构体struct sockaddr_in sin;sin.sin_family AF_INET;sin.sin_port htons(69);sin.sin_addr.s_addr inet_addr(argv[1]);int menu -1;while(1){system(clear); //清屏printf(\t\t1、下载\n);printf(\t\t2、上传\n);printf(\t\t0、退出\n);printf(请输入功能);scanf(%d, menu);getchar();//多分支选择switch(menu){case 1:{do_download(cfd, sin);}break;case 2:{do_upload(cfd,sin);}break;case 0:goto POS;default:printf(输入功能有误请重新输入\n);}//阻塞printf(输入任意键按回车清空:);while(getchar() ! \n);}POS://关闭套接字close(cfd);return 0; }下载功能效果图 上传功能效果图 思维导图 从第二章到第五章 模拟面试题和答案定期更新
http://www.pierceye.com/news/933/

相关文章:

  • 网站标签制作wordpress插件进销存
  • 龙岗网站-建设深圳信科做淘宝美工图片网站
  • 网站服务器用来做啥上海易站网站建设
  • 网站开发自学难吗网站免费推广策划方案
  • 丰都网站建设案例浙江城乡建设网站证件查询
  • 微信公众号怎么做网站链接网站建设需要什么流程图
  • 网站建设大致分哪几个板块漯河做网站
  • 用wordpress做音乐网站wap网页游戏
  • 最便宜做个网站多少钱官网网站备案流程
  • 作网站贵州互联网公司
  • 做营销型网站多少钱网站优化北京联系电话?
  • 基层网站建设作用西安app开发
  • 软件设计学什么课程seo营销的概念
  • 国外设计网站dooor石家庄房产网
  • 石家庄市桥西区建设局网站wordpress打印代码
  • linux建设网站php打开提示404苏州网站定制公司哪家好
  • 开发网站的语言游戏网站建设项目规划
  • 做网站有好创意想法开源网站后台管理系统
  • 网站宣传片网站主页 内页 关键词 一样
  • 做网站的属于什么乌海网络推广
  • 有没有专业做汽车坐垫网站做半成品网站
  • 网页设计类网站网店管家erp
  • 杭州知名网站建设怎样在手机上网站建设
  • 可以做四级的网站海外网app下载
  • 中国室内设计网站官网燕赵邯郸网站建设
  • 校园网站建设素材国家商标局商标查询网
  • 如何免费创建网站网站建设保密
  • 微网站 服务器移动商城积分和积分区别
  • 做外贸生意在哪个网站网站链接推广
  • 东坑网站建设公司少儿编程课是学什么的