行业资讯
您现在所在的位置:首页>企业动态>行业资讯

UDP简介

编辑:学到牛牛IT培训    发布日期: 2023-08-22 08:53:32  


UDP是网络传输中传输层的协议,是无连接的一种传输协议。在网络传输中主要起到事务的不可靠信息传送服务。

UDP传输可简单理解为以写信的方式将信息发送出去,我们只需要知道对方的IP地址,即可将信息发送过去。但也正是因为只需要对方的IP地址,所以数据传输的方式比较简单,传送的速度也较快。但也因为这种简单的传输方式,就对传送的信息的安全性没有保障,易出现数据丢包的现象,并且在传送多条数据时,对于数据到达的顺序也没有保障,因此往往多用于实验数据的测试方面。

在进行UDP通信的时候,首先就需要确定对象的IP地址,确定IP地址之后,与之绑定,绑定成功之后就可以进行数据传输。在UDP传输中每个代码的功能相对独立。也就是说一个程序只能实现收或发一种功能,一般称发送数据一方为客户端,接收方为服务端。

代码如下:

//服务端代码

#include <stdio.h>

#include <netinet/in.h>

#include <sys/socket.h>

#include <sys/types/h>


int main()

{

int fd = socket(AF_INET, SOCK_DGRAM,0);   //创建套接字

if(fd < 0)  

{

perror(“error ”);    //判断是否创建成功

}


struct sockaddr_in sock;       //创建结构体

sock.sin_family = AF_INET;      //用于IPV4网络协议族

sock.sin_port = htons(8899);    //连接端口号

sock.sin_addr.s_addr = INADDR_ANY; //设置IP地址的

 

int len = sizeof(sock);     //获取结构体大小

int ret = bind(fd, &sock ,len);     //绑定端口号和IP地址

if(ret < 0)  

{

perror(“bind error ”);      //错误检测

}

char data[1024] = {0};         //设置变量用于存放接收的数据

struct sockaddr_in send;         //创建新的结构体

int send_len = sizeof(send);        //获取结构体大小

ret = recvfrom(fd, data, sizeof(data), 0, &send, &send_len);         //数据接收

If(ret < 0)

{

perror(“recvfrom error”);     //错误检测

}

printf(“send said:%s ”, data);

return 0;

}


//客户端代码

#include<stdio.h>

#include <netinet.h>

#include <sys/socket.h>

#include <sys/types.h>


int main()   

{

int fd = socket(AF_INET, SCOK_DGRAM, 0);     //创建套接字

If(fd < 0)

{

perror(“socket error ”);         //错误检测

struct sockaddr_in dst;               //创建结构体

dst.sin_family = AF_INET;            //设置为IPV4协议族

dst.sin_port = htons(8899);           //设置端口号

dst.sin_addr.s_addr = inet_addr(“192.168.31.71”);       //设置IP地址

    

char *buf = “hello world”;                //输入发送内容

int len = sizeof(dst);                          

Int ret = 0;                                   

ret = sendto(fd, buf, sizeof(buf), 0, &dst,  &len);         //数据发送

if(ret < 0)

{

perror(“sendto error ”);         //错误检测

}

    return 0;

}


免费试学
课程好不好,不如实地听一听

封闭学习

2

1

联系我们

电话:028-61775817

邮箱:1572396657@qq.com

地址:成都市金牛区西城国际A座8楼

  • 新闻频道_关注IT技术应用资讯-学到牛牛
    新闻频道_关注IT技术应用资讯-学到牛牛

    扫一扫,免费咨询

  • 新闻频道_关注IT技术应用资讯-学到牛牛
    新闻频道_关注IT技术应用资讯-学到牛牛

    微信公众号

  • 新闻频道_关注IT技术应用资讯-学到牛牛
新闻频道_关注IT技术应用资讯-学到牛牛

学一流技术,找高薪工作

新闻频道_关注IT技术应用资讯-学到牛牛

7-24小时服务热线:

028-61775817

版权声明 网站地图

蜀ICP备2021001672号

课程问题轻松问