zoukankan      html  css  js  c++  java
  • 套接字选项——getsockopt和setsockopt

      这两个函数仅用于套接字

    #include <sys/socket.h>   
    int getsockopt(int sock, int level, int optname, void *optval, socklen_t *optlen);  
    int setsockopt(int sock, int level, int optname, const void *optval, socklen_t optlen); 
    //if success return 0,else return -1 

    参数:

    1. sock:指向一个的打开的套接字描述符,也就是将要被设置或者获取选项的套接字。
    2. level:所在协议,或为通用套接字,或为某个特定协议(例如IPv4,IPv6、TCP或SCTP)

          <1>SOL_SOCKET: 基本套接口 

          <2>IPPROTO_IP: IPv4套接口 

          <3>IPPROTO_IPV6: IPv6套接口 

          <4>IPPROTO_TCP: TCP套接口 

    1. optname:需要访问的选项名。
    2. optval:对于getsockopt(),把已经获取的选项值存放在*optval中,为0表示相应的选项被禁止,不为零表示该选项被启用。对于setsockopt(),从*optval中取得选项待设置的新值,为0禁止该选项...
    3. optlen:对于getsockopt(),作为入口参数时,选项值的最大长度。作为出口参数时,选项值的实际长度。对于setsockopt(),现选项的长度。

    返回值:

      成功执行时,返回0;失败返回-1,errno被设为以下的某个值 :

    1. EBADF:sock不是有效的文件描述词
    2. EFAULT:optval指向的内存并非有效的进程空间
    3. EINVAL:在调用setsockopt()时,optlen无效
    4. ENOPROTOOPT:指定的协议层不能识别选项
    5. ENOTSOCK:sock描述的不是套接字

  • 相关阅读:
    线段树
    数据结构<三> 队列
    数据结构<二>双向链表
    数据结构<一>单链表
    扩展欧几里德算法
    90 个 node.js 扩展模块,我们疯了
    nodejs的查询构造器
    express的路由配置优化
    express路由方案
    Redis学习笔记~目录
  • 原文地址:https://www.cnblogs.com/tianzeng/p/10467757.html
Copyright © 2011-2022 走看看