2015-01-02 25 views
-1

我有两个相同程序的进程,可能运行在两台不同的机器上。 我想过程P2通过套接字从进程P1接收函数指针。
可以吗?这是一个好习惯吗?是否可以通过套接字发送指向函数的指针?

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

+1

_“可以吗?”_号_“这是一个好习惯吗?”_编号 –

+0

它可能以非移动方式。绝对不是好的做法。 (考虑如果你的一台机器被“黑客攻击”会发生什么?) – immibis

+0

发送函数的代码也是可能的(但更加不可移植)。 – immibis

回答

6

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

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

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

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

相关问题