本文介绍: 后面两个参数 fromaddrlen,实际上是返回对端发送方的地址端口信息,这和 TCP 非常不一样,TCP 是通过 accept 函数拿到的描述信息来决定对端的信息sockfd本地创建的套接字描述符,buff 指向发送缓存,nbytes 表示发送字节数。sockfd本地创建的套接字描述符,buff 指向本地缓存,nbytes 表示最大接收数据字节。第四个参数 flags 是和 I/O 相关的参数这里我们还用不到,设置为 0。函数返回值告诉我们实际发送字节数。
#include <sys/socket.h>
ssize_t recvfrom(int sockfd, void *buff, size_t nbytes, int flags, 
          struct sockaddr *from, socklen_t *addrlen); 

sockfdbuff 和 nbytes 是前三个参数。sockfd本地创建的套接字描述符,buff 指向本地缓存,nbytes 表示最大接收数据字节
第四个参数 flags 是和 I/O 相关的参数,这里我们还用不到,设置为 0。
后面两个参数 fromaddrlen,实际上是返回对端发送方的地址端口信息,这和 TCP 非常不一样,TCP 是通过 accept 函数拿到的描述信息来决定对端的信息。另外 UDP 报文每次接收都会获取对端的信息,也就是说报文报文之间是没有上下文的。函数返回值告诉我们实际接收字节数。

#include <sys/socket.h>
ssize_t sendto(int sockfd, const void *buff, size_t nbytes, int flags,
                const struct sockaddr *to, socklen_t addrlen); 

sendto 函数中的前三个参数为 sockfd、buff 和 nbytes。sockfd 是本地创建的套接字描述符,buff 指向发送的缓存,nbytes 表示发送字节数。
第四个参数 flags 依旧设置为 0。
后面两个参数 to 和 addrlen,表示发送的对端地址和端口等信息。
函数返回值告诉我们实际发送的字节数。

文章为11月Day 21学习笔记内容来源于极客时间《网络编程实战》

原文地址:https://blog.csdn.net/qq_42108074/article/details/134543174

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_8355.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注