游戏登录器列表更新网站建设,西安网站制作中心,wordpress适合做博客的主题,js做的携程网站UDP通信 1、UDP2、UDP通信流程 1、UDP
/*
udp传输层协议#xff0c;和tcp是一样的
特点:面向无连接的#xff0c;不安全的#xff0c;报式传输协议1#xff0e;无连接:ldp通信的时候不需要connect1) 通信不需要建立连接2) 如果想给对方发送数据#xff0c;只需要指定对方… UDP通信 1、UDP2、UDP通信流程 1、UDP
/*
udp传输层协议和tcp是一样的
特点:面向无连接的不安全的报式传输协议1无连接:ldp通信的时候不需要connect1) 通信不需要建立连接2) 如果想给对方发送数据只需要指定对方的IP和端口2. udp会丢包1) 数据丢失了就没有了没有数据校验机制2) udp不会丢失一部分数据丢就是全丢不丢就是一点不不丢3报式:发送端发送多少数据,接牧端接收多少数据|
*/2、UDP通信流程
udp通信过程中,服务器和客户端做的操作几乎是一样的
服务器端
// 1. 创建一个通信的套接字 AF_INET使用IPv4
int cfd socket(AF_INETSOCK_DGRAM0); //通信使用udp
// 2通信的套接字和本地的IP和端口绑定
// 绑定的目的:程序启动之后不主动发送数据先接收数据就需要绑定端口
// 如果不手动绑定端口就会自动绑定端口主动发送数据可以自动绑定端口
struct sockaddr_in addr ;
bind(cfd, (struct sockaddr* )addr, sizeof(addr) );
// 3通信
接收数据:recvfrom( ) ;
发送数据:sendto();
// 4. 关闭通信的文件描述符
close(); 客户端
// 1. 创建一个通信的套接字
int cfd socket(AF_INETSOCK_DGRAM0); //通信使用udp
// 2通信的套接字和本地的IP和端口绑定
// 绑定的目的:程序启动之后不主动发送数据先接收数据就需要绑定端口
// 如果不手动绑定端口就会自动绑定端口
struct sockaddr_in addr ;
bind(cfd, (struct sockaddr* )addr, sizeof(addr) );
// 3通信
接收数据:recvfrom( ) ;
发送数据:sendto();
// 4. 关闭通信的文件描述符
close();操作函数
//接收数据
ssize_t recvfrom( int sockfd, void *buf, size_t len, int flags,struct sockaddr *src_addr, socklen_t *addrlen) ;
参数∶- sockfd:通信的文件描述符- buf:指向一块有效内存地址存储接收的数据- len:参数buf指向的内存大小- flags:使用默认属性指定为0即可- src_addr:传出参数保存发送端的地址信息(IP和端口)-大端(网络字节序)- 对发送端的地址不感兴趣可以指定为NULL- addrlen:传入传出参数类似于accept()最后一个参数- src_addr为NULL该参数也指定为NULL即可
返回值:0:接收的字节数-1:失败//发送数据函数
ssize_t sendto(int sockfd, const void *buf, size_t len, int flags,const struct sockaddr *dest_addr, socklen_t addrlen);
参数:- sockfd:通信的文件描述符- buf:指向一块有效内存地址内存中存储了待发送的数据- len:参数buf指向的内存中待发送的数据长度- flags:使用默认属性指定为0即可- dest_addr:传入参数保存接收端的地址信息(IP和端口)-大端(网络字节序)- addrlen:传入参数dest_addr参数指向的内存大小
返回值:0: 发送的字节数-1:失败