如何通过套接字发送函数 python

How to send a function over sockets python

所以我正在学习套接字,特别是客户端服务器网络,我的一个问题是是否可以通过套接字发送函数?

我知道你可以这样做:

#class containing function, called printing_class
print.py
class printing_class(self):

def print(self):
    print("hello world")
#server.py
from print import printing_class

print = printing_class(self)
server.send(print) #pseudocode for send statement, sending print object

#client.py
print = client.receive() #pseudo code for print and receive
print.print() # by doing this, prints out hello world

通过发送一个对象,我可以访问它的方法然后打印它。

但是,我想知道有没有办法这样做:

#server.py
server.send(print("hello world"))

#client.py
client.receive() # when receiving from server, automatically prints it

是否可以通过套接字发送一个打印函数,当客户端接收到它时,它会自动打印它?

可以使用名为 RPyC 的库来实现。

  1. 运行 包含的 rpyc_classic.py 简单服务器脚本(仅用于测试)。
  2. 使用客户端连接到它并发送 python 您想要执行的代码。

示例:

import rpyc
c = rpyc.classic.connect("localhost") # connect
c.execute("print('hi there')")   # print "hi there" on the host

rpyc 的众多功能之一是您可以限制要执行的函数(或者您可以自己定义它们),以免造成安全漏洞。