我正在使用 rpyc 在 python 中编写一个程序。我的目标是创建一个简单的服务器,它接受来自客户端的数据字节(字符串)。我对 python 和 rpyc 都很陌生。
这是我的 server.py 代码:
from rpyc.utils.server import ThreadedServer # or ForkingServer
class MyService(rpyc.Service):
# My service
pass
if __name__ == "__main__":
server = ThreadedServer(MyService, port = 18812)
server.start()
然后是我的 client.py 代码:
from rpyc.core.stream import SocketStream
from rpyc.core.channel import Channel
b = SocketStream.connect("localhost", 18812)
c = Channel(b, compress=True)
c.send("abc")
b.close()
c.close()
然而,当运行我的 client.py 时,控制台中出现错误。如果我理解正确,我必须在 server.py 中创建一个与客户端关联的流。是这样吗?我怎样才能做到这一点?
您正在使用低级原语,但没有在它们之上放置协议。无论如何,你真的不需要去那里。这是您想要执行的操作:
myserver.py
import rpyc
from rpyc.utils.server import ThreadedServer
class MyService(rpyc.Service):
# My service
def exposed_echo(self, text):
print(text)
if __name__ == "__main__":
server = ThreadedServer(MyService, port = 18812)
server.start()
然后打开一个 python shell 并尝试
>>> import rpyc
>>> c = rpyc.connect("localhost", 18812)
>>> c.root.echo("hello")
'hello'
注意,这是使用面向服务的模式。您也可以使用经典模式。赶紧跑bin/rpyc_classic.py
然后使用连接rpyc.classic.connect("host")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)