UDP属于传输层协议,有如下特点:
UDP ----- 快速
a.无连接的,不保证可靠的,尽力的传输协议。
b.数据不能保证可靠,数据有可能在从传输过程中丢失,或者出现数据重复,失序等情况。
c.由于UDP无应答,所以UDP的传输效率高
d.限制每次传输的数据大小
e.数据的收发是同步的,数据不会粘包
UDP的适用场景:适用于对传输质量比较低,以及传输小尺寸数据。在需要强求实时性的场景下或者给出应答比较苦难的情况下。
UDP模型图:
UDP基础服务器的构建:
#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>
#define ERR_MSG(msg) do{\
fprintf(stderr,"line:%d",__LINE__);\
}while(0)
#define PORT 9999 //1024-49151
#define IP "192.168.8.113" //本机ip地址 用ifconfig查看
int main(int argc, const char *argv[])
{
//创建报式套接字
int sfd = socket(AF_INET,SOCK_DGRAM,0);
if(sfd < 0)
{
ERR_MSG("socket");
return -1;
}
printf("socket create success sfd = %d\n",