setsockopt:设置socket属性

setsockopt:设置套接字属性:

  套接字属性有三层:

  1、socket.层(SOL SOCKET)

  2、TCP层(IPPROTO TCP)

  3、IP层(IPPROTO IP)

 

 

案例1:

案例2:

    //允许多次绑定
    int on = 1;
    //功能设置socket属性
    //参数1:socket描述符
    //参数2:修改哪个层的属性
    //     SOL_SOCKET:通用套接字选项、IPPROTO_IP:IP层、IPPROTO_TCP:TCP层
    //参数3:指定要设置成什么
    //参数4:获得或者是设置套接字选项。根据选项名称的数据类型进行转换
    //参数5:参数4类型长度
    setsockopt(skt, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(int));

案例3:

    //加入组播组
    struct ip_mreq mreq;
    bzero(&mreq,sizeof(mreq));
    mreq.imr_multiaddr.s_addr = inet_addr("224.10.10.1");
    mreq.imr_interface.s_addr = htonl(INADDR_ANY);//INADDR_ANY = 0x00000000
    setsockopt(skt, IPPROTO_IP, IP_ADD_MEMBERSHIP, &mreq, sizeof(mreq));

 

posted @ 2022-04-08 14:38  西北小蚂蚁  阅读(407)  评论(0编辑  收藏  举报