linux中read,write和recv,send的区别(转)
生活随笔
收集整理的這篇文章主要介紹了
linux中read,write和recv,send的区别(转)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1、recv和send函數(shù)提供了和read和write差不多的功能。但是他們提供了第四個(gè)參數(shù)來控制讀寫操作.
int recv(int sockfd,void *buf,int len,int flags)
int send(int sockfd,void *buf,int len,int flags)
????前面的三個(gè)參數(shù)和read,write相同,第四個(gè)參數(shù)能夠是0或是以下的組合:
_______________________________________________________________
| MSG_DONTROUTE |?不查找路由表?|
| MSG_OOB |?接受或發(fā)送帶外數(shù)據(jù)?|
| MSG_PEEK |?查看數(shù)據(jù),并不從系統(tǒng)緩沖區(qū)移走數(shù)據(jù)?|
| MSG_WAITALL |?等待任何數(shù)據(jù)?|
|————————————————————–|
????如果flags為0,則和read,write一樣的操作。
2、在unix中,所有的設(shè)備都可以看成是一個(gè)文件,所以我們可以用read來讀取socket數(shù)據(jù)。
總結(jié)
以上是生活随笔為你收集整理的linux中read,write和recv,send的区别(转)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux网络编程二十:socket选项
- 下一篇: 浅谈多进程多线程的选择(转)