一、必备接口
1、接收数据
recvfrom函数用于从套接字接收数据。
#include <sys/socket.h>
ssize_t recvfrom(int sockfd, void* buf, size_t len, int flags, struct sockaddr* src_addr, socklen_t* addrlen);
返回值:返回正数表示成功接收到的数据字节数,返回 0 表示对方已经关闭了连接(对于 TCP),返回 -1 表示发生错误。
sockfd:指定从哪个套接字接收数据。buf:指向一个缓冲区,用于存储接收到的数据。len:指定buf的最大长度。flags:设置接收数据的标志,无标志一般设为 0,在这里可以设置非阻塞模式。src_addr:用于存储发送方的地址信息,输出型参数。addrlen:用于指定src_addr结构体的长度,输入输出型参数。在调用recvfrom函数之前,需要将其初始化为src_addr结构体的最大长度,函数返回时,addrlen会被更新为实际存储在src_addr中的地址信息的长度。
2、发送数据
sendto函数用于在无连接的套接字(如 UDP 套接字)上发送数据。
#include <sys/socket.h>
ssize_t sendto(int sockfd, const void* buf, size_t len, int flags, const struct sockaddr* dest_addr, socklen_t addrlen);
返回值:返回正数表示成功发送的数据字节数,返回 -1 表示发送过程中出现错误。
sockfd:指定通过哪个套接字发送数据。buf:指向要发送的数据的缓冲区。len:表示要发送的数据的长度(以字节为单位),即buf缓冲区中实际要发送的数据的字节数。


