谈谈TCP Socket中写数据的函数---write、send 、sendv

write函数

  1. 将数据写入到 TCP 连接中。
  2. 原型:ssize_t write(int sockfd, const void *buf, size_t count);
    -sockfd:TCP Socket 描述符。
    -buf:要发送的数据缓冲区。
    -count:要发送的字节数。
    -返回值:成功时返回实际发送的字节数,出错时返回 -1。当errno为EAGAIN或EWOULDBLOCK时,表明读取完毕,接受缓冲为空,在非阻塞IO下会立即返回-1。若errno不是上述标志,则说明读取数据出错,因该关闭连接,进行错误处理。 返回值ret=0,客户端连接关闭

send函数

  1. 将数据写入到 TCP 连接中。
  2. ssize_t send(int sockfd, const void *buf, size_t len, int flags),同步的IO接口;
    -sockfd:TCP Socket 描述符。
    -buf:要发送的数据缓冲区。
    -len:要发送的字节数。
    -flags:可选的标志参数,用于控制发送行为,如 MSG_DONTWAIT、MSG_NOSIGNAL 等。
    -返回值:成功时返回实际发送的字节数,出错时返回 -1。

sendv函数

  1. 将多个数据块写入到 TCP 连接中。
  2. ssize_t sendv(int sockfd, const struct iovec *iov, int iovcnt);
    -sockfd:TCP Socket 描述符。
    -iov:指向 iovec 结构数组的指针,每个 iovec 结构包含一个数据块的地址和长度。
    -iovcnt:iovec 数组中的元素个数。
    -返回值:成功时返回实际发送的字节数,出错时返回 -1。

注意 :这些函数在发送数据时都会阻塞,直到所有数据都成功发送或发生错误。可以通过设置套接字为非阻塞模式或使用适当的选项来使这些函数变为非阻塞的。

相关推荐
TechWayfarer7 小时前
IP风险等级评估接入实战:金融信贷如何用IP画像辅助风控审核
python·tcp/ip·安全·金融
ylscode8 小时前
Comodo防火墙曝致命零日漏洞:单个IPv6数据包即可触发Windows蓝屏死机
运维·网络·windows·安全·安全威胁分析
xiaofeichaichai8 小时前
网络请求与实时通道
前端·网络
德迅云安全-甲锵9 小时前
解析CDN防护核心原理:筑牢网络业务安全屏障
网络·安全
上海云盾第一敬业销售9 小时前
高防CDN与高防IP应用场景架构解析
网络协议·tcp/ip·架构
闪电悠米9 小时前
黑马点评-Redisson-01_why_redisson
java·服务器·网络·数据库·缓存·wpf
鹿鸣天涯10 小时前
网规第三版:第8章网络故障分析与处理案例
网络·软考·网络规划设计师
上海云盾-小余10 小时前
CN2 与 BGP 线路优劣拆解,按需选配规避延迟与攻击隐患
网络
智慧景区与市集主理人10 小时前
市集的 “IP 化” 打造路径——从单次活动到长期品牌资产
人工智能·科技·tcp/ip