linux中read,write和recv,send的區別(轉)


1、recvsend函數提供了和readwrite差不多的功能但是他們提供了第四個參數來控制讀寫操作.

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 | 等待任何數據 |

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

    如果flags0則和read,write一樣的操作。

2、在unix中,所有的設備都可以看成是一個文件,所以我們可以用read來讀取socket數據。

參考

1 http://apps.hi.baidu.com/share/detail/137478

2】 設置非阻塞

http://www.ajaxstu.com/Cbiancheng/107652.html

3】 http://blog.163.com/solylee@126/blog/static/17182315720111161368585/

4http://blog.163.com/clevertanglei900@126/blog/static/111352259201122001933162/

5】 http://topic.csdn.net/u/20090703/20/36925146-0f73-47fe-8a71-45ec245166ba.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM