gpt4 book ai didi

c++ - 从套接字对象获取 fd 或句柄

转载 作者:太空狗 更新时间:2023-10-29 23:08:21 24 4
gpt4 key购买 nike

我想为 node.js 创建一个 native (c++) 模块,它能够将套接字发送到另一个 Node 进程,这与当前进程完全无关。为此,我想使用辅助库,它有一个非常非常简单的 API。我现在要解决的问题是如何获取node.js的fd或者socket对象的句柄。

tcp_wrap.cc & tcp_wrap.h中有一个TCPWrap类,它有一个名为handle_的属性,它持有一个来自 libuv 的 uv_tcp_t 对象,但该属性是私有(private)的。我也不能 #include 因为它只是 node.js 的一个模块,而不是直接在 node.js 本身中。我不知道将源文件复制到我的模块是否只是为了获得那个类...

你有什么想法吗?

我不必在 winows 上运行,太难了。

谢谢!

最佳答案

我终于找到了一个方法来做到这一点。您可以在此处找到 Node 模块: https://github.com/VanCoding/node-ancillary

我刚刚采用了 header “tcp_wrap.h”、“stream_wrap.h”和“handle_wrap.h”,然后包含了“tcp_wrap.h”。

然后我可以通过以下方式获取对象:

TCPWrap* wrap = static_cast<TCPWrap*>(args[0]->ToObject()->GetPointerFromInternalField(0));
StreamWrap* s = (StreamWrap*)wrap;

然后下面的代码提供了对文件描述符的访问

s->GetStream()->fd

关于c++ - 从套接字对象获取 fd 或句柄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9955079/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com