zoukankan      html  css  js  c++  java
  • socket的几个配置函数

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

    sockfd: 标识一个套接口的描述字

    level:  选项定义的层次;支持SOL_SOCKETIPPROTO_TCPIPPROTO_IPIPPROTO_IPV6

    optname:需设置的选项

    optval: 指针,指向存放选项值的缓冲区

    optlen: optval缓冲区长度

    成功返回0,失败返回-1


    1. 如果在已经处于 ESTABLISHED状态下的socket(一般由端口号和标志符区分)调用closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket(程序里不要写close关闭描述符,其实写不写都无所谓,这里设置了可以重用)  以前编程都没设置这个,默认不能重用,所以服务器端只能运行一个,不能多个同时运行;  这个接口可以在系统级别实现负载均衡。

    int reuse=1;  默认这个值是0

    setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&reuse,sizeof(int));


    int getsockname(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
            \ 获取本机socket信息
    成功返回0,失败返回-1。


    int getpeername(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
            \ 获取accept到的客户端的地址
    成功返回0,失败返回-1。


    int shutdown(int sockfd, int how);
              \ 关闭读端、写端或者读写端
    成功返回0,失败返回-1。

    sockfd:  accept 返回的描述符
    how:    
          SHUT_RD    关闭读端
          SHUT_WR    关闭写端
          SHUT_RDWR  关闭读写端


  • 相关阅读:
    element ui表单校验prop的链式写法----源码分析
    函数的链式调用实现Man().sleep().eat()
    chrome浏览器表单自动填充默认样式-autofill
    苹果企业证书签名和超级签名
    iOS企业重签名管理软件之风车签名管理
    iOS/IPA重签名工具
    关于keytool和jarsigner工具签名的使用小结
    《Android逆向反编译代码注入》
    IPA的动态库注入+企业重签名过程
    linux部署MantisBT(二)部署php
  • 原文地址:https://www.cnblogs.com/meihao1203/p/8907448.html
Copyright © 2011-2022 走看看