文档详情

基于linux开发系列-39 udp socket通信编程应用.pptx

发布:2025-02-20约3.18千字共12页下载文档
文本预览下载声明

学习c++开发基于Linux系统开发系列

—第39讲UDPSocket通信及编程应用

学云签约讲师魏娟

上节回顾

•模拟网络QQ聊天应用编程

–一对一聊天一次

–一对一聊天多次

–一对多聊天多次

本节目标

•UDP协议及特点

•UDP通讯流程

•UDPSocketAPI函数

•UDPSocket应用编程

UDP协议及特点

•UDPprotocol

–UDP协议是一种无连接协议,通信之前不需要用

client调用connect连接服务器

–UDP在通讯前无需确定双方是否连通

•UDP通信特点

–无连接协议

–无需严格流量控制

–效率高

UDP通信流程

•UDP通信流程分析

–无需客户端去连接服务器端

UDPClientUDPServer

创建通信文件

socket()创建通信socket文件socket()socket

client没有connect就

可收发数据,UDP协bind()绑定服务器的IP地址和端口

发送send议无需连通就可通信

数据

阻塞,直到收到数

sendto()为什么client调用client

recvfrom()前不需要recvfrom()据才打破阻塞

象server那样绑定IP数据(请求)

和端口;因为是UDP阻塞,直到收到某

一客户的数据

协议无需确定连通fork(),放

recvfrom()入子进程

接受反馈处理请求

响应数据数据(应答)

发送反馈响应数据

close()关闭socket文件sendto()

close()关闭socket文件

UDPSocketAPI函数

•Socket函数

–头文件:sys/socket.h

–创建UDPsocket

–intsockfd=socket(AF_INET,SOCK_DGRAM,0);

•recvfrom函数

–头文件:sys/socket.h

–size_trecvfrom(intsocketfd,void*buf,size_t

nbytes,intflags,structsockaddr*from,socklen_t*

addrlen);

•功能:用于接收数据

•参数socketfd为接收端的socket文件的描述符

•参数buf为读写缓冲区,用于接收数据的空间,保存

接收的数据

UDPSocketAPI函数

•参数nbytes为缓冲区空间大小,空间的字节数

•参数flags直接填写为0

•参数from用于存储发送方的地址信息,若不需要或

不关心发送方是谁则from的值可设置为NULL

•参数

显示全部
相似文档