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

时间:2015-01-02 09:04:44

标签: c++ linux sockets function-pointers

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

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

1 个答案:

答案 0 :(得分:6)

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

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

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

但是,说实话,有更好的方法来实现您想要的东西,例如以更便携的方式使用RPC(远程过程调用)。