博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python rpyc的应用 ——聊天的功能(带认证)
阅读量:6119 次
发布时间:2019-06-21

本文共 1695 字,大约阅读时间需要 5 分钟。

  hot3.png

rpc:远程过程调用,一个协议,实现的语言有很多。顾名思义,在A机器远程调用B机器里面的函数。 rpyc:python的远程过程调用。

首先是安装,我的环境:centos6.5

cd /usr/local/src/ wget https://pypi.python.org/packages/source/r/rpyc/rpyc-3.2.3.tar.gz --no-check-certificate  tar -zxvf rpyc-3.2.3.tar.gz cd rpyc-3.2.3python setup.py install

测试下,运行

[root@Master rpyc-3.2.3]# python -c 'import rpyc'

没有错误就说明安装好了

现在做一个功能就是聊天会话的功能,理解下。 一个server端,一个client端。

vim server.py 输入:

[root@Master rpyc-3.2.3]# vim server.py #-*- encoding: utf-8 -*-from rpyc import Servicefrom rpyc.utils.server import ThreadedServerclass ManagerService(Service):    #rpyc只传送exposed_开头的函数    #进行连接用户认证 user和passwd 随便起一个,和linux用户没关系    def exposed_login(self,user,passwd):        if user=="root" and passwd=="KJS23o4ij09gHF734iuhsdfhkGYSihoiwhj38u4h":            self.Checkout_pass=True        else:            self.Checkout_pass=False    #认证成功后执行接收到的命令关返回结果    def exposed_cmd(self,command):        try:            if self.Checkout_pass!=True:                return "User verify failed!"        except:            return "Invalid Login!"        print "他说:",command        ret=raw_input("我说:")        return ret#启动进程服务s=ThreadedServer(ManagerService,port=11511,auto_register=False)s.start()

这个地方注意下:待会先启动server.py

然后再开启一个终端(或者是装了rpyc的其他机器,连接的时候将127.0.0.1换成server的ip) vim client.py

#-*- encoding: utf-8 -*-import rpycconn=rpyc.connect('127.0.0.1',11511)conn.root.login('root','KJS23o4ij09gHF734iuhsdfhkGYSihoiwhj38u4h')while 1:        command=raw_input("我说:")        message=conn.root.cmd(command)        print "他说:",message

写好了过后,注意!!!!!!!!! 先启动server.py 然后启动client.py

输入图片说明

rpyc用来聊天? 也太低级了。 换位思考下,都能交互了,还有啥不能做。 client发送命令,server获取了,然后去执行,还有什么不能做的。 参考: rpyc 官网:

转载于:https://my.oschina.net/VASKS/blog/651539

你可能感兴趣的文章
bulk
查看>>
js document.activeElement 获得焦点的元素
查看>>
C++ 迭代器运算
查看>>
【支持iOS11】UITableView左滑删除自定义 - 实现多选项并使用自定义图片
查看>>
day6-if,while,for的快速掌握
查看>>
JavaWeb学习笔记(十四)--JSP语法
查看>>
【算法笔记】多线程斐波那契数列
查看>>
java8函数式编程实例
查看>>
jqgrid滚动条宽度/列显示不全问题
查看>>
在mac OS10.10下安装 cocoapods遇到的一些问题
查看>>
angularjs表达式中的HTML内容,如何不转义,直接表现为html元素
查看>>
css技巧
查看>>
Tyvj 1728 普通平衡树
查看>>
[Usaco2015 dec]Max Flow
查看>>
javascript性能优化
查看>>
多路归并排序之败者树
查看>>
java连接MySql数据库
查看>>
转:Vue keep-alive实践总结
查看>>
android studio修改新项目package名称
查看>>
深入python的set和dict
查看>>