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


  • 相关阅读:
    第四周编程总结
    第三周作业编程总结
    第二周基础作业
    【C++学习教程03】面向对象编程的基本知识&内联函数
    【C++学习教程02】运算符
    【C++学习教程01】C++命名空间重名&函数原型&字符类型&数据类型
    为什么匿名内部类只能访问其所在方法中的final变量
    android通过socket上传文件
    android socket编程
    test markdown-here chrome 插件
  • 原文地址:https://www.cnblogs.com/meihao1203/p/8907448.html
Copyright © 2020-2023  润新知