一、write/read到send/recv
函数原型:
ussize_t send(int sockfd, const void *buf, size_t len, int flags);//发送
ussize_t recv(int sockfd, void *buf, size_t len, int flags);//接收
前三个参数同read/write一样;
ussize_t read(int fd, void *buf, size_t count);//读文件
ussize_t write(int fd, const void *buf, size_t count);//写文件
常见flags:
1. 一般设置为0
2. MSG_PEEK:窥视传入的数据。 数据被复制到缓冲区中,但不会从输入队列中删除。
3. MSG_OOB:处理带外(OOB)数据
二、sendto与recvfrom
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);
1. 前四个参数同recv/send一样;
2. 后两个参数是通信结构体和结构体的宽度;
三、UDP通信的实现过程