LibUV создает поток UDP из существующего сокета - PullRequest
0 голосов
/ 30 января 2019

Я очень мало знаю о том, как работает Unix, поэтому, пожалуйста, извините за мое невежество.

У меня есть путь к сокету на моем linux box, /data/sock/socket.

Я хочу отправить данные в этот сокет с помощью LibUV, но я не уверен, как это сделать.

В настоящее время я настроил его для создания собственного сокета,

uv_udp_t m_socket;
uv_udp_send_t m_send_req;
sockaddr_in m_addr;

uv_udp_init(uv_default_loop(), &m_socket);
uv_ip4_addr("0.0.0.0", 8008, &m_addr);

char buff[6] = "Hello\0";
auto buf = uv_buf_init(buff, 6);
uv_udp_send(&m_send_req, &m_socket, &buf, 1, (const struct sockaddr*)&m_addr, NULL);

Как я могу использовать сокет, который есть в моей файловой системе, вместо того, чтобы использовать сокет, созданный с помощью кода?

1 Ответ

0 голосов
/ 30 января 2019

Эти сокеты называются сокетами "локальный домен", а не UDP-сокетами.К счастью, LibUV поддерживает их (очевидно, только в UNIX; хотя в Windows тот же API LibUV использует «Named Pipes» под капотом.)

В любом случае ... Короче, вы должны использовать pipe API (то есть uv_pipe_init и uv_pipe_bind() / uv_pipe_connect,) вместо uv_udp_* функций.

Документацию по API-интерфейсу канала LibUV можно найти здесь .

...