1. 将UDP服务器客户端脱离笔记重新搭建(上交)
2. 完成下载上传(上交,必须完成下载,上传尽力完成)
TFTP下载
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <stdlib.h>
#define ERR_MSG(msg) do{fprintf(stderr,"line:%d",__LINE__);perror(msg);}while(0)
#define TFTP_SER_PORT 69
#define SER_IP "192.168.0.144"
int main(int argc, const char *argv[])
{
//创建报式套接字
int cfd = socket(AF_INET,SOCK_DGRAM,0);
if(cfd < 0)
{
ERR_MSG("socket");
return -1;
}
printf("socket create success cfd = %d __%d__\n",cfd,__LINE__);
//填充服务器地址信息
struct sockaddr_in sin;
sin.sin_family = AF_INET;
sin.sin_port = htons(TFTP_SER_PORT);//端口号
sin.sin_addr.s_addr = inet_addr(SER_IP);//TFTP地址
//发送下载请求
char buf[516] = "";
bzero(buf,sizeof(buf));
unsigned short * p1 = (unsigned short *)buf;
*p1 = htons(1); //操作码
char *p2 = buf + 2;
char filename[1024]="";
printf("输入要下载的文件名>>>>>");
scanf("%s",filename);
getchar();
strcpy(p2,filename); //下载的文件
char *p3 = p2 + strlen(p2);
*