UDP数据读写

UDP数据读写函数

1
2
3
4
5
6
#include <sys/types.h>
#include <sys/socket.h>

ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags, struct sockaddr* src_addr, socklen_t * addrlen);

ssize_t sendto(int sockfd, const void* buf, size_t len, int flags, const struct sockaddr * dest_addr, socklen_t addrlen);

recvfrom函数介绍

recvfrom函数读取sockfd上的数据,buf和len参数分别指定读缓冲区的位置和大小。因为UDP通信没有连接的概念,所以我们每次读取数据都需要获取发送端的socket地址,即参数src_addr所指的内容,addrlen参数则指定该地址的长度。flags参数和recv/send函数的flags参数的相同。具体参考:TCP数据读写

sendto函数的介绍

sendto函数往sockfd上写入数据,buf和len参数分别指定写缓冲区的位置和大小。dest_addr参数指定接收端的socket的地址,addrlen参数则指定该地址的长度。flags参数和recv/send函数的flags参数的相同。具体参考:TCP数据读写

返回值

成功时候返回读写字节数,出错时候返回-1.