read、write与recv、send的区别
来源:互联网 发布:数据冗余分类 编辑:程序博客网 时间:2024/06/13 06:24
前边两个上边博客已经做了详细解释了,现在说说后两个库函数。
首先是函数原型:
size_t recv(int sockfd,void *buf,int len,int flags);size_t send(int sockfd,void *buf,int len,int flags);
recv和send函数提供了和read和write差不多的功能.但是他们提供 了第四个参数来控制读写操作.
前面的三个参数和read,write相同,第四个参数能够是0或是以下的组合:
| MSG_DONTROUTE | 不查找路由表 |
| MSG_OOB | 接受或发送带外数据 |
| MSG_PEEK | 查看数据,并不从系统缓冲区移走数据|
| MSG_WAITALL | 等待任何数据 |
MSG_DONTROUTE:是send函数使用的标志.这个标志告诉IP协议.目的主机在本地网络上面,没有必要查找路由表.这个标志一般用网络诊断和路由程式里面.
MSG_OOB:表示能够接收和发送带外的数据.关于带外数据我们以后会解释的.
MSG_PEEK:是recv函数的使用标志,表示只是从系统缓冲区中读取内容,而不清楚系统缓冲区的内容.这样下次读的时候,仍然是相同的内容.一般在有多个进程读写数据时能够使用这个标志.
MSG_WAITALL:recv函数的使用标志,表示等到任何的信息到达时才返回.使用这个标志的时候recv回一直阻塞,直到指定的条件满足,或是发生了错误.1)当读到了指定的字节时,函数正常返回.返回值等于len 2)当读到了文档的结尾时,函数正常返回.返回值小于len 3)当操作发生错误时,返回-1,且配置错误为相应的错误号(errno)
0 0
- read、write与recv、send的区别
- socket编程中的read、write与recv、send的区别
- socket编程中的read、write与recv、send的区别
- read,send,write,recv的区别
- linux下网络编程send,recv,read,write的区别
- linux recv\read 和 send/write区别
- socket中recv() send() read() write()区别
- send-write;recv-read
- read write 替代 send recv
- read write 替代 send recv
- socket中read write和recv send区别
- recv,write,send,read,recvfrom,sendto区别,详解
- socket函数read write 和 send recv之间的区别【转】
- socket编程中write、read和send、recv之间的区别
- socket编程中write、read和send、recv之间的区别
- socket编程中write、read和send、recv之间的区别
- socket编程中write、read和send、recv之间的区别
- socket编程中write、read和send、recv之间的区别
- Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
- HashMap与TreeMap的应用与区别
- 【斯坦福大学-吴恩达-机器学习】
- Spring学习心得(16)-- aop代理原理
- extjs4的textfield通过setValue重新设值以后如何显示出来?
- read、write与recv、send的区别
- 第四届蓝桥杯振兴中华
- spark mllib机器学习之三 FPGrowth
- swift 为什么设计 guard 语法?
- CSU 1838: Water Pump(ACM-ICPC Asia Thailand National On-Site Programming Contest 2015)
- 基础面试题-java&jvm
- 火柴问题 +全排列
- 调用PostgreSQL存储过程,找不到函数名的问题
- ListView item上面有Button导致item点击无效