c++ - 是否可以通过套接字发送指向函数的指针?

标签 c++ linux sockets function-pointers

我有同一个程序的两个进程,可能运行在两台不同的机器上。 我希望进程 P2 通过套接字从进程 P1 接收函数指针。
有可能吗?这是一个好的做法吗?

编辑:更有趣的是也发送函数的代码,但我对此表示怀疑。这可能吗?

最佳答案

可以从一个进程向另一个进程发送函数指针,就像向其他对象发送指针一样。

问题是指针可能实际上并不指向函数,因为它存在于目标进程中。特别是如果操作系统使用 ASLR 之类的东西来保护自己。 .

您还可以发送代码,前提是您有某种方法可以确定它的结束位置,并且它是与位置无关的代码,并且您的环境允许您将任意数据写入内存然后调用它。

但是,说实话,有更好的方法来实现您似乎想要的目标,例如以更可移植的方式使用 RPC(远程过程调用)。

关于c++ - 是否可以通过套接字发送指向函数的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27739698/

相关文章:

c++ - 从可维护性的角度来看,当减少公开可见的 API 似乎更可取时,为什么提倡公共(public)继承?

c++ - std::string::max_size() 作为静态成员

c++ - 在 C++ 中为数组释放内存?

linux - 使用 bash 在文件中查找字符串

macos - 如何让 DNS 解析在 El Capitan 上的 Mac OS X `chroot` 内工作?

c++ - 'operator=' 和 sockaddr 成员的问题

c# - 通过 Socket 从 C++ 到 C# 的 Protobufer

linux - linux内核中虚拟地址到物理地址的转换

linux - Docker 不应将新文件写入原始目录

python - 使用socket向tcp服务器发送用户名和密码