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

  • 相关阅读:
    swoole创建进程
    php中,posix_getpid() 和 getmypid() 有什么不同
    php查看进程
    初探PHP多进程
    nginx转发
    mime类型
    acwing 517. 信息传递
    LeetCode 1255 得分最高的单词集合 Maximum Score Words Formed by Letters
    LEETCODE 1254 统计封闭岛屿的数目 Number of Closed Islands
    算法问题实战策略 SORTGAME
  • 原文地址:https://www.cnblogs.com/tianzeng/p/10467757.html
Copyright © 2011-2022 走看看