Skip to content
On this page

send(2)


标签:linux/api  

函数原型

功能:接收对端发送的数据包

c
#include <sys/types.h> 
#include <sys/socket.h> 
 
ssize_t send(int sockfd, const void *buf,
             size_t len, int flags)
ssize_t sendto(int sockfd, const void *buf, size_t len, int flags, 
             const struct sockaddr *dest_addr, socklen_t addrlen);

参数

  • int sockfd:需要填写通信用的套接字文件描述符,即accept函数获取到的新的文件描述符;
  • void *buf:指定要发送的数据包的首地址,可以接收任意类型数据;
  • size_t len:指定要发送多少个字节的数据;
  • int flags
    • 0:阻塞方式接收,空间满的时候,该send函数阻塞;
    • MSG_DONTWAIT:非阻塞;

sendto 独有参数

  • dest_addr:地址信息结构体(参考 bind(2)),因为是基于非连接的消息发送,需要填写接收方的地址信息。
  • addrlen:地址信息结构体的大小

send(fd, buf, len, flags)等同于sendto(fd, buf, len, flags, NULL, 0)

返回值

  • >0, 成功,返回成功发送的字节数;
  • -1, 失败,返回 -1,更新errno

相关笔记

Last updated: