sendmsg返回值_Linux下send、sendto、sendmsg函数分析

从网上查到了一些关于这几个函数的使用及注意事项,现终结如下:

功能描述:

发送消息,send只可用于基于连接的套接字,send 和

write唯一的不同点是标志的存在,当标志为0时,send等同于write。sendto 和

sendmsg既可用于无连接的套接字,也可用于基于连接的套接字。除了套接字设置为非阻塞模式,调用将会阻塞直到数据被发送完。

用法:

#include

#include

ssize_t send(int sock, const void *buf, size_t len, int flags);

ssize_t sendto(int sock, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen);

ssize_t sendmsg(int sock, const struct msghdr *msg, int flags);参数:

sock:索引将要从其发送数据的套接字。

buf:指向将要发送数据的缓冲区。

len:以上缓冲区的长度。

flags:是以下零个或者多个标志的组合体,可通过or操作连在一起

MSG_DONTROUTE:不要使用网关来发送封包,只发送到直接联网的主机。这个标志主要用于诊断或者路由程序。

MSG_DONTWAIT:操作不会被阻塞。

MSG_EOR:终止一个记录。

MSG_MORE:调用者有更多的数据需要发送。

MS

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值