python - 用于发送字符串数据的简单 rpyc 客户端和服务器

标签 python client server rpyc

我正在使用 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 中创建一个与客户端关联的流。是这样吗?我怎样才能实现这一目标?

最佳答案

您正在使用低级原语,但没有在它们之上放置协议(protocol)。无论如何,你真的不需要去那里。这是您想要执行的操作:

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")

进行连接

关于python - 用于发送字符串数据的简单 rpyc 客户端和服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26930726/

相关文章:

python - 如何使用 ctypes 访问返回在 Delphi dll 中编码的自定义类型的函数?

c# - Android客户端与.Net C#服务器之间的最佳通信策略

javascript - 在客户端 js 上使用来自第三方的跨源 JSON?

Bonobo git 服务器的 Windows 客户端

javascript - 阻止用户使用ajax提交自己的图像?

python - 线程 "Driver"org.apache.spark.SparkUserAppException : User application exited with 1 中出现异常

python - 如何模拟随机正态变量Python

用于情感分析的Python代码

java - 我可以使用套接字列表发送给多个客户端吗?

java - 未检测到 JDBC MySQL 新插入