linux中read,write和recv,send的区别

Posted 南哥的天下

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux中read,write和recv,send的区别相关的知识,希望对你有一定的参考价值。

linux中read,write和recv,send的区别

1、recv和send函数提供了和read和write差不多的功能。但是他们提供了第四个参数来控制读写操作.

int recv(int sockfd,void *buf,int len,int flags)

int send(int sockfd,void *buf,int len,int flags)

    前面的三个参数和read,write相同,第四个参数能够是0或是以下的组合:

_______________________________________________________________

| MSG_DONTROUTE | 不查找路由表 |

| MSG_OOB | 接受或发送带外数据 |

| MSG_PEEK | 查看数据,并不从系统缓冲区移走数据 |

| MSG_WAITALL | 等待任何数据 |

|————————————————————–|

    如果flags为0,则和read,write一样的操作。

2、在unix中,所有的设备都可以看成是一个文件,所以我们可以用read来读取socket数据。

 

以上是关于linux中read,write和recv,send的区别的主要内容,如果未能解决你的问题,请参考以下文章

read() 和 recv() 以及 send() 和 write() 之间有啥区别?

read VS recv?关于 send 和 recv 的第四个参数 flag

read VS recv?关于 send 和 recv 的第四个参数 flag

套接字I/O函数write/read writev/readv send/recv sendto/recvfrom sendmsg/recvmsg

在 UDP 套接字上使用 write()/read()?

高级套接字函数