Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > C/C++ > socket属性控制
【标  题】:socket属性控制
【关键字】:socket
【来  源】:http://blog.csdn.net/wqf363/archive/2006/11/02/1363449.aspx

socket属性控制

Your Ad Here

1高级套接字函数 getsockoptsetsockopt

int getsockopt(int sockfd,int level,int optname,void *optval,socklen_t *optlen)
int setsockopt(int sockfd,int level,int optname,const void *optval,socklen_t *optlen)

level
指定控制套接字的层次.可以取三种值
:
1)SOL_SOCKET:
通用套接字选项
.
2)IPPROTO_IP:IP
选项
.
3)IPPROTO_TCP:TCP
选项
.

对应的optname详细说明

optname
指定控制的方式(选项的名称
).

选项名称 说明 数据类型

======================================================================
SOL_SOCKET
SO_BROADCAST
允许发送广播数据
int
SO_DEBUG
允许调试
int
SO_DONTROUTE
不查找路由
int
SO_ERROR
获得套接字错误
int
SO_KEEPALIVE
保持连接
int
SO_LINGER
延迟关

SO_OOBINLINE 带外数据放入正常数据流 int
SO_RCVBUF
接收缓冲区大小
int
SO_SNDBUF
发送缓冲区大小
int
SO_RCVLOWAT
接收缓冲区下限
int
SO_SNDLOWAT
发送缓冲区下限
int
SO_RCVTIMEO
接收超时
struct timeval
SO_SNDTIMEO
发送超时
struct timeval
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

IPPRO_TCP
TCP_MAXSEG TCP
最大数据段的大小
int
TCP_NODELAY
不使用Nagle算法 int

 optval获得或者是设置套接字选项.ON或者OFF .

2 高级套接字函数 ioctl

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

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

3        高级套接字函数 fcntl

status = fcntl (hand, option, mode )

上述fcntl函数调用中,各参数定义如下:

    handle:已打开的文件句柄。

    option:一般可以是下列两种值:

        F_GETFL:表示读取文件状态值。

       F_SETFL:表示设置文件状态值。

(注意:F_GETFLF_SETFL都被定义在fcntl.h

    mode:如果optipnF_GETFL,则这个参数值可以是任意值。如果是F_SETFL,则参数值可以是下列值:

 O_WRONLY:将文件设置成只写状态。

O_RDWR   将文件设置成读写状态。

O_RDONLY:将文件设置成只读状态。

status:函数会将调用结果赋给status,如运行失败,则status的值会被设成-1

socket缓冲区的影响:【上一篇】
C语言:用负数作数组下标?YES!:【下一篇】
【相关文章】
  • socket缓冲区的影响
  • 深入讨论.NET Socket的Accept方法
  • 通过JavaSocket来读取客户端字符显示到服务器端
  • 学Socket笔记
  • Java ME 打开Socket连接示范
  • .NET Sockets I/O模型
  • Socket网络编程学习笔记(6):使用线程池提高性能
  • Socket网络编程学习笔记(4):TCP消息边界处理
  • Socket网络编程学习笔记(5):发送和接收实体类数据
  • Symbian 上使用BSD socket 进行raw socket编程
  • 【随机文章】
  • 评论:最佳Ajax应用之日程表
  • 圆形文字的环绕制作<2>
  • AIX双机+HACMP(转载)
  • 在NT网中组建自己的Web站点
  • 以太网接入技术在智能小区中的应用(1)
  • 在SQLSERVER2005中实现素数计算
  • 3D编程指南第一部分:快速进入移动JAVA 3D编程世界
  • Postfix 的FAQ[转]
  • 请大家帮帮忙!急
  • 水晶报表系列文章--FAQ
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.