Sad..太懒了.....立个flag..每天一篇笔记..哈哈哈早上起来学英语...
recvfrom和sendto函数
类似与read函数和write函数,但是需要第三个参数.
#include<sys/socke.h>
ssize_t recvfrom(int sockfd,void *buff,size_t nbytes,int flags,
struct sockaddr *from,socklen_t *addrlen);
ssize_t sendto(int sockfd,const void *buff,size_t nbytes,int flags,
const struct sockaddr *to,socklen_t addrlen);
返回:若成功则为读或写的字节数,若出错则为-1
前三个参数为描述符,指向读入或写出缓存区的指针和读写字节数..
flags....还没讲..先为0
to参数指向一个含有数据包接受者的协议地址(如IP地址及端口号)的套接字地的结构,大小由addrlen指定.recvfrom的from参数指向一个将由该函数的返回时填写数据报发送者的协议地址的套接字结构,字节数由addrlen返回.sendto的最后一个是整数型不是指针.
recvfrom的最后两个参数类似于accept的参数:返回时其中套接字地址结构的内容告诉我们是谁发送了数据包(UDP).sendto就是...发往哪里.
读写长度作为这两个函数的返回值.
如果recvfrom的from参数是一个空指针,那么相应的长度参数addrlen也必须是一个空指针,表示不在乎数据发送者的协议地址..
网友评论