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描述的不是套接字

  • 相关阅读:
    Linux命令应用大词典-第11章 Shell编程
    Kubernetes 学习12 kubernetes 存储卷
    linux dd命令
    Kubernetes 学习11 kubernetes ingress及ingress controller
    Kubernetes 学习10 Service资源
    Kubernetes 学习9 Pod控制器
    Kubernetes 学习8 Pod控制器
    Kubernetes 学习7 Pod控制器应用进阶2
    Kubernetes 学习6 Pod控制器应用进阶
    Kubernetes 学习5 kubernetes资源清单定义入门
  • 原文地址:https://www.cnblogs.com/tianzeng/p/10467757.html
Copyright © 2011-2022 走看看