它可以识别您想要的内容 - 虽然我没有如何测试它与一个完整的代码,我做了一些在终端上的测试,它很好 -
开放的TCP/IP连接是一个进程资源,可以与进程的子进程和同级进程共享。
因此,没有什么能够阻止您使用传统的Posix调用来启动一个新进程,运行您的python3脚本,并且在它内部,只使用“fileno”属性重新创建套接字。
“fileno”是在操作系统级别标识连接的标识符,它是可以传递给socket.socket构造函数的参数。
因此,在调用脚本,你做的东西线:
import os
....
pid = os.fork()
if pid == 0:
os.execv("/usr/bin/python3.2", ["python3.2", path_to_python3_script, mysocket.fileno")
,并在python3.2脚本:
import sys
import socket
socket_fileno = int(sys.argv[1])
mysocket = socket.socket(fileno=socket_fileno)
顺便说一句,你没有指定OS你正在研究 - 如果你运气不好使用Windows,它不会使用fork
,但应该有一个解决办法。
什么是“会话对象”? – 2012-01-18 08:59:18
我会尝试用泡菜,但我不确定它会起作用... – plaes 2012-01-18 09:11:08
@plaes:OP说“没有序列化” – 2012-01-18 09:22:53