Chinaunix首页 | 论坛 | 博客
  • 博客访问: 56107
  • 博文数量: 25
  • 博客积分: 2051
  • 博客等级: 大尉
  • 技术积分: 290
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-24 19:56
文章分类
文章存档

2011年(1)

2009年(8)

2008年(16)

我的朋友
最近访客

分类: LINUX

2008-08-23 21:42:31

由于在unix下,套接字可以像文件描述符一样操作,所以read,write同样可以在socket套接字上面进行操作

 

一个socket连接的建立见unpv80

 

但是readwrite所表现的行为又不同于通常的文件i/o,一次读写的次数可能比要求的少(不是错误)所以需要使用自己写readnwriten函数。

 

但是有更高级的send,recv,当标志MSG_WAITWALL可随函数recv一起使用代替独立的readn函数,当flag 0send/recv就等同于readwrite

 

sendrecv 系統呼叫和 readwrite 類似,但還能夠用來處理特殊狀況:

其中,flags 的值:
MSG_OOB
:收發 out-of-band(緊急)資料。
MSG_PEEK
:只閱讀、而不取出收到的封包資料。
MSG_DONTROUTE
:不予以 routing

MSG_WAITWALL告知内核不要在尚为读入请求数目的字节前让读操作返回

 

 

阅读(900) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~