socket编程函数recvfrom用法

上传人:wuxin****2020 文档编号:107932172 上传时间:2022-06-15 格式:DOC 页数:2 大小:14.01KB
收藏 版权申诉 举报 下载
socket编程函数recvfrom用法_第1页
第1页 / 共2页
socket编程函数recvfrom用法_第2页
第2页 / 共2页
资源描述:

《socket编程函数recvfrom用法》由会员分享,可在线阅读,更多相关《socket编程函数recvfrom用法(2页珍藏版)》请在装配图网上搜索。

1、Linux系统调用- recv/recvfrom 函数详解 功能描述: 从套接字上接收一个消息。对于recvfrom ,可同时应用于面向连接的和无连接的套接字。recv一般只用在面向连接的套接字,几乎等同于recvfrom,只要将recvfrom的第五个参数设置NULL。如果消息太大,无法完整存放在所提供的缓冲区,根据不同的套接字,多余的字节会丢弃。假如套接字上没有消息可以读取,除了套接字已被设置为非阻塞模式,否则接收调用会等待消息的到来。用法: #include #include ssize_t recv(int sock, void *buf, size_t len, int flags)

2、;ssize_t recvfrom(int sock, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlen); 参数: sock:索引将要从其接收数据的套接字。buf:存放消息接收后的缓冲区。len:buf所指缓冲区的容量。flags:是以下一个或者多个标志的组合体,可通过or操作连在一起MSG_DONTWAIT:操作不会被阻塞。MSG_ERRQUEUE:指示应该从套接字的错误队列上接收错误值,依据不同的协议,错误值以某种辅佐性消息的方式传递进来,使用者应该提供足够大的缓冲区。导致错误的原封包通

3、过msg_iovec作为一般的数据来传递。导致错误的数据报原目标地址作为msg_name被提供。错误以sock_extended_err结构形态被使用,定义如下#define SO_EE_ORIGIN_NONE 0#define SO_EE_ORIGIN_LOCAL 1#define SO_EE_ORIGIN_ICMP 2#define SO_EE_ORIGIN_ICMP6 3struct sock_extended_err u_int32_t ee_errno; /* error number */ u_int8_t ee_origin; /* where the error origina

4、ted */ u_int8_t ee_type; /* type */ u_int8_t ee_code; /* code */ u_int8_t ee_pad; u_int32_t ee_info; /* additional information */ u_int32_t ee_data; /* other data */ /* More data may follow */;MSG_PEEK:指示数据接收后,在接收队列中保留原数据,不将其删除,随后的读操作还可以接收相同的数据。MSG_TRUNC:返回封包的实际长度,即使它比所提供的缓冲区更长, 只对packet套接字有效。 MSG_W

5、AITALL:要求阻塞操作,直到请求得到完整的满足。然而,如果捕捉到信号,错误或者连接断开发生,或者下次被接收的数据类型不同,仍会返回少于请求量的数据。MSG_EOR:指示记录的结束,返回的数据完成一个记录。MSG_TRUNC:指明数据报尾部数据已被丢弃,因为它比所提供的缓冲区需要更多的空间。MSG_CTRUNC:指明由于缓冲区空间不足,一些控制数据已被丢弃。MSG_OOB:指示接收到out-of-band数据(即需要优先处理的数据)。MSG_ERRQUEUE:指示除了来自套接字错误队列的错误外,没有接收到其它数据。from:指向存放对端地址的区域,如果为NULL,不储存对端地址。fromlen:作为入口参数,指向存放表示from最大容量的内存单元。作为出口参数,指向存放表示from实际长度的内存单元。返回说明: 成功执行时,返回接收到的字节数。另一端已关闭则返回0。失败返回-1,errno被设为以下的某个值 EAGAIN:套接字已标记为非阻塞,而接收操作被阻塞或者接收超时EBADF:sock不是有效的描述词ECONNREFUSE:远程主机阻绝网络连接EFAULT:内存空间访问出错EINTR:操作被信号中断EINVAL:参数无效ENOMEM:内存不足ENOTCONN:与面向连接关联的套接字尚未被连接上ENOTSOCK:sock索引的不是套接字

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!