语言: Python ,支持 Python 2.6 - 3.X
平台: Posix
特色:
import unittest
import os
from procslink import RPCPeer
class HelloWorldTestCase(unittest.TestCase):
def test_hello_world(self):
pid = os.fork()
if pid == 0:
class MyAPI(object):
def hello(self, name):
s = "Hello, %s!" % name
print(s)
return s
rpc_server = RPCPeer()
print("Server's nl_pid is %s." % rpc_server.nl_pid)
rpc_server.register_functions_in_object(MyAPI())
rpc_server.run_server_forever()
else:
rpc_client = RPCPeer()
rpc_client.talk_to(pid).hello("Rayson Zhu")
os.wait4(pid, 0)
GitHub 地址: https://github.com/vfreex/procslink
许可证: MIT
Pip 安装:
sudo pip install procslink
1
raysonx OP 取自自己和朋友做的另一个项目的一个模块,可能还不太完善,但基本功能都有了。目前没有原生提供认证功能,使用时注意安全。
|
3
kongkongyzt 2016-10-22 01:21:48 +08:00 via Android
有个困惑,如果 rpc server 重启导致 nlpid 发生改变,那么 rpc client 也需要修改 nlpid ?
|
4
ldbC5uTBj11yaeh5 2016-10-22 01:28:22 +08:00 via Android
有点意思,和 erlang 的跨机通信接口像极了。顶一个。
|
5
raysonx OP @kongkongyzt nlpid 可以自己指定,如果不指定的话,会由内核自动选择。如果一个进程只绑定一个 nlpid 的话, nlpid 等于进程 pid 。
|