资讯专栏INFORMATION COLUMN

Python进程专题8:分布集群的消息传递

wh469012917 / 3496人阅读

摘要:代表网络地址的元组或者代表域套接字的文件名,或者代表形式的字符串,代表远程系统本地计算机的为上的一条命名管道。是一个整数,当参数指定了一个网络连接时,对应于传递给套接字的方法的值,默认为。

上一篇文章:Python进程专题7:托管对象
下一篇文章:Python进程专题9:关于进程的实用工具函数
使用multiprocessing模块的程序不仅可以于运行在同一计算机的其它程序进行消息传递,还可以于位于不到计算机的远程系统程序进行消息传递。其中的multiprocessing.connection子模块包含该目的的函数和类:

connections.Client(address,family,authenticate,authkey)

连接到另一个进程,此进程必须已经正在监听地址address。
address:代表网络地址的元组(hostname,port),或者代表UNIX域套接字的文件名,或者代表
r"servernamepipepipename"形式的字符串,代表远程系统servername(本地计算机的servername为".")上的一条Windows命名管道。

family:表示地址格式的字符串。一般是"AF_INET"、"AF_UNIX"、或"AF_PIPE".如果省略此参数,将从address的格式退出它的值。

backlog:是一个整数,当address参数指定了一个网络连接时,对应于传递给套接字的listen()方法的值,backlog默认为1。

authenticate:一个布尔标志,指定是否使用摘要身份验证。
authkey:包含身份验证密钥的字符串,如果忽略此参数,将使用current_process().authkey的值。

此函数的返回值是Connection对象,管道中有讲过。

connections.Listener(address,family,backlog,authenticate,authkey)

实现了一台服务器,用于侦听和处理Client()函数发送的连接。
如果省略address参数,将选择默认地址,如果同时省略address和family两个参数,将选择本地系统上速度最快的可用通信模式。

Listener实例listener支持一下方法和属性。

属性或方法名 介绍
listener.accept() 接受一个新连接,并返回一个Connetion对象。如果身份验证失败,将引发Authentication-Error异常
listener.address 侦听器正在使用的地址
listener.close() 关闭侦听器正在使用的管道或套接字
listener.last_accepted 接受的最后一个客户端的地址。
实例:服务器端与客户端发送消息

服务器端代码:

#服务器端,负责监听客户端并实现简单的远程操作
from multiprocessing.connection import Listener
serv=Listener(("",11111),authkey="123456".encode())
while True:
    conn=serv.accept()
    while True:
        try:
            x,y=conn.recv()
        except EOFError:
            print("出错了")
            break
        result=x+y
        conn.send(result)
    conn.close()

客户端代码:

#客户端,向服务器端发送消息
from multiprocessing.connection import Client
conn=Client(("localhost",11111),authkey="123456".encode())
conn.send((5,6))
r=conn.recv()
print(r)


conn.send(("mark","帅哥"))
r=conn.recv()
print(r)
conn.close()

客户端打印结果:

11
mark帅哥

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/42353.html

相关文章

  • Python进程专题9:关于进程实用工具函数

    摘要:上一篇文章进程专题分布集群的消息传递下一篇文章进程专题函数解析返回所有活动子进程的对象组成的列表返回系统上的数量,如果能够确定的话返回当前进程的对象在实用各种打包工具如进行冻结的应用程序中,次函数应该作为主程序的首行。 上一篇文章:Python进程专题8:分布集群的消息传递下一篇文章:Python进程专题10:GIL 函数 解析 activite_children() 返回...

    妤锋シ 评论0 收藏0
  • Python进程专题7:托管对象

    摘要:连接带远程管理器对象,该对象的地址在构造函数中支出。在当前进程中运行管理器服务器。启动一个单的子进程,并在该子进程中启动管理器服务器。如果无法序列号对象将引发异常。 上一篇文章:Python进程专题6:共享数据与同步下一篇文章:Python进程专题8:分布集群的消息传递 进程不支持共享对象,上面描述的创建共享值和数组,但都是指定的特殊类型,对高级的Python对象(如:字典、列表、用...

    DevYK 评论0 收藏0
  • Python进程专题6:共享数据与同步

    摘要:可以使用标准的索引切片迭代操作访问它,其中每项操作均锁进程同步,对于字节字符串,还具有属性,可以把整个数组当做一个字符串进行访问。当所编写的程序必须一次性操作大量的数组项时,如果同时使用这种数据类型和用于同步的单独大的锁,性能将极大提升。 上一篇文章:Python进程专题5:进程间通信下一篇文章:Python进程专题7:托管对象 我们现在知道,进程之间彼此是孤立的,唯一通信的方式是队...

    Yuanf 评论0 收藏0
  • Python进程专题5:进程间通信

    摘要:上一篇文章进程专题进程池下一篇文章进程专题共享数据与同步模块支持的进程间通信主要有两种管道和队列。队列底层使用管道和锁,同时运行支持线程讲队列中的数据传输到底层管道中,来实习进程间通信。 上一篇文章:Python进程专题4:进程池Pool下一篇文章:Python进程专题6:共享数据与同步 multiprocessing模块支持的进程间通信主要有两种:管道和队列。一般来说,发送较少的大...

    eccozhou 评论0 收藏0
  • PySpark SQL 相关知识介绍

    摘要:大数据除了体积和速度外,数据的多样性和准确性也是大数据的一大特点。这些也被称为大数据的特征。介绍是一个解决大数据问题的分布式可伸缩的框架。介绍计算的模型最早出现在谷歌的一篇研究论文中。相关链接介绍是一个通用的分布式编程框架。 本文作者:foochane 本文链接:https://foochane.cn/article/2019060601.html 1 大数据简介 大数据是这个时代最...

    CoderStudy 评论0 收藏0

发表评论

0条评论

wh469012917

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<