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  关闭读写端


  • 相关阅读:
    libeXosip2(1-2) -- How-To initiate, modify or terminate calls.
    libeXosip2(1-1) -- How-To initialize libeXosip2.
    libeXosip2(1) -- Modules
    麦田的守望者背景与分析
    statfs函数说明
    c++ 14
    c++ 13
    URAL 2078~2089
    2018 Multi-University Training Contest 1
    Codeforces Round #502
  • 原文地址:https://www.cnblogs.com/meihao1203/p/8907448.html
Copyright © 2011-2022 走看看