SO_REUSEPORT选项不适用于macOS和libuv。
uv_loop_init
uv_tcp_init_ex
uv_fileno // get fd
int option_value = 1;setsockopt(fd,SOL_SOCKET,SO_REUSEPORT,&option_value,sizeof (int) )
uv_tcp_bind
uv_thread_create 4
我看到4个相同的地址和端口绑定在0.0.0.0:8080,但是只有线程1的connection_cb工作,所以我可以在我的程序中使用这个选项吗?谢谢。
发布于 2017-01-05 07:39:37
macOS (和其他BSD)与Linux有不同的SO_REUSEPORT实现。在(相对地)最近的Linux版本上,它将允许您进行内核级的负载平衡,但是在BSD上,只有最后一个要绑定的套接字才能获得连接。
长话短说,它不能工作,唉。
https://stackoverflow.com/questions/41247790
复制相似问题