UDP客户端代码实战 - 课后任务
我要参与
UDP客户端代码实战 - 课后任务

练习

大家自己写一个UDP发送方的代码,按照下列框图要求编写代码,新建一个log.txt的文件,在文件中写入数据,用户读取log.txt文件的内容,通过sendto()发送给网络调试助手,并通过网络测试助手接收数据,判断读取的内容是否正确。
图片描述

去发布

登录后即可发布作业,立即

我的作业

全部作业 3

SamstagBaron
#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;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
代码块
复制 预览
复制成功!

图片描述
图片描述

提交于  2025-04-07 23:42:49
评论 1
讲师点评
评分:100
无__名
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师