惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

月光博客
月光博客
T
Tenable Blog
D
DataBreaches.Net
GbyAI
GbyAI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
腾讯CDC
V
Visual Studio Blog
B
Blog
雷峰网
雷峰网
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
I
InfoQ
M
MIT News - Artificial intelligence
有赞技术团队
有赞技术团队
T
Tailwind CSS Blog
The Cloudflare Blog
L
LangChain Blog
MongoDB | Blog
MongoDB | Blog
Vercel News
Vercel News
Cloudbric
Cloudbric
L
Lohrmann on Cybersecurity
博客园 - 司徒正美
T
The Exploit Database - CXSecurity.com
Google DeepMind News
Google DeepMind News
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Attack and Defense Labs
Attack and Defense Labs
Martin Fowler
Martin Fowler
SecWiki News
SecWiki News
T
Threat Research - Cisco Blogs
J
Java Code Geeks
Cyberwarzone
Cyberwarzone
Forbes - Security
Forbes - Security
Spread Privacy
Spread Privacy
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
大猫的无限游戏
大猫的无限游戏
O
OpenAI News
D
Darknet – Hacking Tools, Hacker News & Cyber Security
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Schneier on Security
Schneier on Security
S
Security @ Cisco Blogs
酷 壳 – CoolShell
酷 壳 – CoolShell
The Hacker News
The Hacker News
H
Help Net Security
Y
Y Combinator Blog
C
Cybersecurity and Infrastructure Security Agency CISA
T
Tor Project blog
量子位
U
Unit 42
S
SegmentFault 最新的问题
V
V2EX
D
Docker

博客园 - 哈哈

cas服务器搭建后的调整 使用python直接连接http服务器获取数据 request的url地址 numpy的多项式函数与求导 pandas相关 tcp与ip的包结构 江苏铁路 易经-64卦 图书分类-中图法,值得一看的图书 linux时区,curl的使用,nginx日志,watch 使用selenium模仿登录,执行js python与java的交互 计算斐波那契数列 Python线程 selenium的使用 pip使用 python读取postgresql 18位身份证的验证码 python读取docx文件属性-最后一次保存的时间等
使用python实现rpc服务
哈哈 · 2021-03-13 · via 博客园 - 哈哈

一种是使用xmlrpc

server端:

from xmlrpc.server import SimpleXMLRPCServer
class RPCServer(object):

    def __init__(self):
        super(RPCServer, self).__init__()
        self.send_data = 'hello world'
        self.recv_data = None

    def getObj(self):
        return self.send_data

    def sendObj(self, data):
        self.recv_data = data

# SimpleXMLRPCServer
server = SimpleXMLRPCServer(('localhost',9999), allow_none=True)
server.register_introspection_functions()
server.register_instance(RPCServer())
server.serve_forever()

client端:

import time
from xmlrpc.client import ServerProxy

# SimpleXMLRPCServer
def xmlrpc_client():
    c = ServerProxy('http://localhost:9999')
    a=c.getObj()
    print(a)
    c.sendObj(a)


if __name__ == '__main__':
    xmlrpc_client()

还有一种是使用zerorpc,性能较高

server端:

import zerorpc

class RPCServer(object):

    def __init__(self):
        super(RPCServer, self).__init__()
        self.send_data = 'helloworld'
        self.recv_data = None

    def getObj(self):
        return self.send_data

    def sendObj(self, data):
        self.recv_data = data

s = zerorpc.Server(RPCServer())
s.bind('tcp://127.0.0.1:8888')
s.run()

client端:

import zerorpc
import time


def client():
    c = zerorpc.Client()
    c.connect('tcp://127.0.0.1:8888')
    a=c.getObj()
    print(a)
    c.sendObj(a)


if __name__ == '__main__':
    client()