SO_REUSEPORT on linux

后端 未结 5 1884
有刺的猬
有刺的猬 2021-02-05 13:28

I want to know if SO_REUSEPORT option is enabled in LINUX 2.6 or not ??

If I try to use it and compile my code I get following error

01.c:72: error: `SO_         


        
5条回答
  •  无人及你
    2021-02-05 13:48

    From /usr/include/asm-generic/socket.h:

    /* For setsockopt(2) */
    #define SOL_SOCKET      1
    
    #define SO_DEBUG        1
    #define SO_REUSEADDR    2
    #define SO_TYPE         3
    #define SO_ERROR        4
    #define SO_DONTROUTE    5
    #define SO_BROADCAST    6
    #define SO_SNDBUF       7
    #define SO_RCVBUF       8
    #define SO_SNDBUFFORCE  32
    #define SO_RCVBUFFORCE  33
    #define SO_KEEPALIVE    9
    #define SO_OOBINLINE    10
    #define SO_NO_CHECK     11
    #define SO_PRIORITY     12
    #define SO_LINGER       13
    #define SO_BSDCOMPAT    14
    /* To add :#define SO_REUSEPORT 15 */
    

    Hmmm. Looks like it's undefined or on the last stages of being depreciated.

    Here's what a post on KernelTrap says:

    On Linux, SO_REUSEADDR provide most of what SO_REUSEPORT provides on BSD.

    In any case, there is absolutely no point in creating multiple TCP listeners.
    Multiple threads can accept() on the same listener - at the same time.
    --
    Rémi Denis-Courmont
    http://www.remlab.net/

提交回复
热议问题