练习
大家自己写一个UDP发送方的代码,按照下列框图要求编写代码,新建一个log.txt的文件,在文件中写入数据,用户读取log.txt文件的内容,通过sendto()发送给网络调试助手,并通过网络测试助手接收数据,判断读取的内容是否正确。
大家自己写一个UDP发送方的代码,按照下列框图要求编写代码,新建一个log.txt的文件,在文件中写入数据,用户读取log.txt文件的内容,通过sendto()发送给网络调试助手,并通过网络测试助手接收数据,判断读取的内容是否正确。
登录后即可发布作业,立即登录
我的作业
全部作业 3
#include<sys/socket.h>
#include<sys/types.h>
#include<unistd.h>
#include<stdlib.h>
#include<arpa/inet.h>
#include<netinet/in.h>
#include<stdio.h>
#include<string.h>
void send_data(int socketfd,struct sockaddr_in *addr,int len){
int n = 0;
char buffer[1024] = {0};
FILE* src = fopen("log.txt","r");
do{
n = fread(buffer,sizeof(char),sizeof(buffer)-1,src);
if(n>0){
n = sendto(socketfd,buffer,n,0,(struct sockaddr *)addr,len);
}
memset(buffer,0,sizeof(1024));
}while(n>0);
}
int main(int argc,char* argv[]){
if(argc!=3){
exit(EXIT_FAILURE);
}
int socketfd = socket(AF_INET,SOCK_DGRAM,0);
if(socketfd<0){
perror("error to socket");
exit(EXIT_FAILURE);
}
struct sockaddr_in addr;
memset(&addr,0,sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_port = htons(atoi(argv[2]));
addr.sin_addr.s_addr = inet_addr(argv[1]);
send_data(socketfd,&addr,sizeof(addr));
return 0;
}
正确