c++ - LibUV 从现有套接字创建 UDP 流
问题描述
我对unix的工作原理知之甚少,所以请原谅我的无知。
我的 linux 机器上有一个套接字的路径,/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);
如何使用我的文件系统上的套接字,而不是使用通过代码创建的套接字?
解决方案
这些套接字称为“本地域”套接字,而不是 UDP 套接字。幸运的是,LibUV 确实支持这些(显然,仅在 UNIX 上;尽管在 Windows 上,相同的 LibUV API 在后台使用“命名管道”。)
无论如何...简而言之,您必须使用管道API(即uv_pipe_init
和uv_pipe_bind()
/ uv_pipe_connect
,)而不是uv_udp_*
函数。
你可以在这里找到 LibUV 的 pipe API 的文档。
推荐阅读
- php - 你能检查我的代码吗?我想使用 for 循环在列表中显示数据库中的数据
- sql - 乘以其他表中最新的先前值
- arrays - Presto - 我如何比较两个数组以获得最大匹配值计数
- plot - gnuplot 中是否可以使用 cfc 过滤器?
- node.js - 如何更改 node-Sqlite3 默认选项
- ios - UICollectionView 带有两个 UICollectionViewFlowLayout
- html - 为列表应用平滑渐变颜色
- javascript - 如何使用 Vuex 向数组对象添加新值?
- java - 计算器的多个 onClick 功能?
- c# - 处理“System.Net.Websocket-Exception:远程方在未完成关闭握手的情况下关闭连接。”?