Chinaunix首页 | 论坛 | 博客
  • 博客访问: 202570
  • 博文数量: 81
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 540
  • 用 户 组: 普通用户
  • 注册时间: 2014-05-04 12:48
文章分类
文章存档

2015年(23)

2014年(58)

我的朋友

分类: C/C++

2014-12-09 20:49:03

setsockopt有下面的解释:
SOL_SOCKET 
SO_RCVBUF 接收缓冲区大小 int 
设置接收缓冲区的保留大小 
SO_SNDBUF 发送缓冲区大小 int 
设置发送缓冲区的保留大小

ioctl:
ioctl可以控制所有的文件描述符的情况,这里介绍一下控制套接字的选项. 
int ioctl(int fd,int req,...) 

ioctl的控制选项 
-------------------------------------------------------------------------- 
SIOCATMARK 是否到达带外标记 int 
FIOASYNC 异步输入/输出标志 int 
FIONREAD 缓冲区可读的字节数 int 

他们两有功能重叠的地方,那到底有什么区别啊?那位大侠给解释解释?


setsockopt 是设置 socket 的选项。
ioctl 是设置文件句柄的选项。
socket 也是一种文件句柄,
所以 ioctl 当然可以实现 setsockopt 的功能哦。


两者既然有相同的功能,是不是在对相同的功能的实现上还是有些区别啊?
你还是没有理解。
实现其实都是一样的。
看起来是两个调用,到了底层其实是同一个驱动。

阅读(1962) | 评论(0) | 转发(0) |
0

上一篇:TCP_DEFER_ACCEPT

下一篇:位域

给主人留下些什么吧!~~