2016-12-20 10 views
0

SO_REUSEPORTオプションは、libuvのmacOSでは動作しません。libuvを持つmacOSのSO_REUSEPORT

uv_loop_init

uv_tcp_init_ex

uv_fileno //取得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を参照してください私のプログラムでこのオプションを使用することはできますか?

答えて

0

macOS(および他のBSD)は、Linuxとは異なるSO_REUSEPORT実装を持っています。比較的最近のLinuxバージョンでは、カーネルレベルのロードバランシングが可能ですBSD上の最後のソケットだけをバインドする接続を取得します。

長いストーリーが短いので、うまく動作することはできません。

関連する問題