size_t sendto(int sockfd,const void * buf,size_t len,int flags,const struct sockaddr * dest_addr,socklen_t addrlen);
size_t sendmsg(int sockfd,const struct msghdr * msg,int flags);
sendto()函数中的前四个参数都和send()的参数相同,后面两个参数分别用于设置接收数据进程的地址和地址长度;
sendmsg()函数中的第二个参数msg为struct msghdr类型的结构体指针,该参数用于传入目标继承的地址,地址的长度等信息;
若sendto()函数和sendmsg()函数向已连接的进程中发送消息,则忽略参数dest_addr、addrlen和msg结构体中用于传递地址的成员。此时若参数dest_addr和addrlen不为NULL,则可能会返回错误EISCONN或0;
这两个函数调用成功返回0,失败返回-1,并设置errno;
函数调用成功并不代表接收端一定能接受到数据;