博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助

fengyetang

追求卓越
   fengyetang.cublog.cn
关于作者  
姓名:枫叶汤
职业:计算机
年龄:22
位置:
个性介绍:

我的分类  




套接字选项(linux下)
有时候我们要控制套接字的行为(如修改缓冲区的大小),这个时候我们就要控制套接
字的
选项了.

getsockopt 和setsockopt
int getsockopt(int sockfd,int level,int optname,void *optval,socklen_t *optl
en)
int setsockopt(int sockfd,int level,int optname,const void *optval,socklen_t
*optlen)
level 指定控制套接字的层次.可以取三种值: 1)SOL_SOCKET:通用套接字选项. 2)IPPRO
TO_IP:IP 选项. 3)IPPROTO_TCP:TCP 选项.
optname 指定控制的方式(选项的名称),我们下面详细解释
optval 获得或者是设置套接字选项.根据选项名称的数据类型进行转换
选项名称 说明 数据类型
===========================================================
===========
SOL_SOCKET
------------------------------------------------------------------------
SO_BROADCAST 允许发送广播数据 int
SO_DEBUG 允许调试 int
SO_DONTROUTE 不查找路由 int
SO_ERROR 获得套接字错误 int
SO_KEEPALIVE 保持连接 int
SO_LINGER 延迟关闭连接 struct linge
r
SO_OOBINLINE 带外数据放入正常数据流 int
SO_RCVBUF 接收缓冲区大小 int
SO_SNDBUF 发送缓冲区大小 int
SO_RCVLOWAT 接收缓冲区下限 int
SO_SNDLOWAT 发送缓冲区下限 int
SO_RCVTIMEO 接收超时 struct timev
al
SO_SNDTIMEO 发送超时 struct timev
al
SO_REUSERADDR 允许重用本地地址和端口 int
SO_TYPE 获得套接字类型 int
SO_BSDCOMPAT 与BSD 系统兼容 int
===========================================================
===========
IPPROTO_IP
--------------------------------------------------------------------------
IP_HDRINCL 在数据包中包含IP 首部 int
IP_OPTINOS IP 首部选项 int
IP_TOS 服务类型
IP_TTL 生存时间 int
===========================================================
=====================
关于这些选项的详细情况请查看 Linux Programmer's Manual

ioctl
ioctl 可以控制所有的文件描述符的情况,这里介绍一下控制套接字的选项.
int ioctl(int fd,int req,...)
===========================================================
===========
ioctl 的控制选项
--------------------------------------------------------------------------
SIOCATMARK 是否到达带外标记 int
FIOASYNC 异步输入/输出标志 int
FIONREAD 缓冲区可读的字节数 int
===========================================================
===========
详细的选项请用 man ioctl_list 查看.
IPPRO_TCP
--------------------------------------------------------------------------
TCP_MAXSEG TCP 最大数据段的大小 int
TCP_NODELAY 不使用Nagle 算法 int
===========================================================

 发表于: 2008-05-23,修改于: 2008-05-23 23:33 已浏览102次,有评论0条 推荐 投诉

  网友评论

  发表评论



Copyright © 2001-2006 ChinaUnix.net All Rights Reserved

感谢所有关心和支持过ChinaUnix的朋友们
页面生成时间:5.60997

京ICP证041476号