zoukankan      html  css  js  c++  java
  • Socket编程基础——Socket选项

    有些情况下,我们需要对Socket行为和属性进一步控制,例如修改缓冲区大小,查看Socket状态,这就需要设置/获取Socket选项。

    1、获取Socket选项
    int getsockopt(SOCKET s,int level,int optname,void *optval,int *optlen)
    s:Socket描述符
    level:选项级别,包括SOL_SOCKETIPPROTO_TCP
    optname:Socket选项的名字
    optval:用于接收Socket数值的缓冲区
    optlen:缓冲区大小

    例如:

    int optVal;
    int optLen=sizeof(optVal);
    // getsocketopt
    getsockopt(ListenSocket,SOL_SOCKET,SO_ACCEPTCONN,(char*)&optVal,&optLen);
    cout<<"SO_ACCEPTCONN:"<<optVal<<endl;
    

    2、设置Socket选项
    int setsockopt(SOCKET s,int level,int optname,void *optval,int optlen)
    s:Socket描述符
    level:选项级别,包括SOL_SOCKETIPPROTO_TCP
    optname:Socket选项的名字
    optval:用于设置Socket数值的缓冲区
    optlen:缓冲区大小

    例如:

    bool bopt=true;
    int boptLen=sizeof(bopt);
    // 修改前
    getsockopt(ListenSocket,SOL_SOCKET,SO_KEEPALIVE,(char*)&optVal,&optLen);
    cout<<"SO_KEEPALIVE:"<<optVal<<endl;
    // setsockopt
    setsockopt(ListenSocket,SOL_SOCKET,SO_KEEPALIVE,(char*)&bopt,boptLen);
    // 修改后
    getsockopt(ListenSocket,SOL_SOCKET,SO_KEEPALIVE,(char*)&optVal,&optLen);
    cout<<"SO_KEEPALIVE:"<<optVal<<endl;
  • 相关阅读:
    DRF小结
    js中BOM与DOM的概念与区别
    css单位分析、颜色设置与调色板
    css中伪类与伪元素的区别
    flexbox与grid layout的区别
    grid的简单使用
    position属性的总结
    html,css
    homework
    aboutme and my goal
  • 原文地址:https://www.cnblogs.com/limicheng/p/4009177.html
Copyright © 2011-2022 走看看