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

Is it possible to send a pointer to function via socket?

本文关键字:函数 指针 可以通过 套接字 是否      更新时间:2023-10-16

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

编辑:更有趣的是发送函数的代码,但我对此持怀疑态度。可能吗?

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

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

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

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