热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

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

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

连接到另一个进程,此进程必须已经正在监听地址address。
address:代表网络地址的元组(hostname,port),或者代表UNIX域套接字的文件名,或者代表
r'\\servername\pipe\pipename'形式的字符串,代表远程系统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("出错了")breakresult=x+yconn.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帅哥



推荐阅读
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • SecureCRT是一款功能强大的终端仿真软件,支持SSH1和SSH2协议,适用于在Windows环境下高效连接和管理Linux服务器。该工具不仅提供了稳定的连接性能,还具备丰富的配置选项,能够满足不同用户的需求。通过SecureCRT,用户可以轻松实现对远程Linux系统的安全访问和操作。 ... [详细]
  • 如何在Linux服务器上配置MySQL和Tomcat的开机自动启动
    在Linux服务器上部署Web项目时,通常需要确保MySQL和Tomcat服务能够随系统启动而自动运行。本文将详细介绍如何在Linux环境中配置MySQL和Tomcat的开机自启动,以确保服务的稳定性和可靠性。通过合理的配置,可以有效避免因服务未启动而导致的项目故障。 ... [详细]
  • 如何优化MySQL数据库性能以提升查询效率和系统稳定性 ... [详细]
  • MySQL初级篇——字符串、日期时间、流程控制函数的相关应用
    文章目录:1.字符串函数2.日期时间函数2.1获取日期时间2.2日期与时间戳的转换2.3获取年月日、时分秒、星期数、天数等函数2.4时间和秒钟的转换2. ... [详细]
  • 为什么多数程序员难以成为架构师?
    探讨80%的程序员为何难以晋升为架构师,涉及技术深度、经验积累和综合能力等方面。本文将详细解析Tomcat的配置和服务组件,帮助读者理解其内部机制。 ... [详细]
  • 用阿里云的免费 SSL 证书让网站从 HTTP 换成 HTTPS
    HTTP协议是不加密传输数据的,也就是用户跟你的网站之间传递数据有可能在途中被截获,破解传递的真实内容,所以使用不加密的HTTP的网站是不 ... [详细]
  • 本文详细介绍了在 CentOS 7 系统中配置 fstab 文件以实现开机自动挂载 NFS 共享目录的方法,并解决了常见的配置失败问题。 ... [详细]
  • 本文详细介绍了在 Ubuntu 系统上搭建 Hadoop 集群时遇到的 SSH 密钥认证问题及其解决方案。通过本文,读者可以了解如何在多台虚拟机之间实现无密码 SSH 登录,从而顺利启动 Hadoop 集群。 ... [详细]
  • Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
    近日需要将PostgreSQL数据库从Windows中迁移到Linux中,LinuxCentOS7安装PostgreSQL9.5.17安装过程特此记录。安装环境&#x ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 如何在Java中使用DButils类
    这期内容当中小编将会给大家带来有关如何在Java中使用DButils类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。D ... [详细]
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
  • 在Cisco IOS XR系统中,存在提供服务的服务器和使用这些服务的客户端。本文深入探讨了进程与线程状态转换机制,分析了其在系统性能优化中的关键作用,并提出了改进措施,以提高系统的响应速度和资源利用率。通过详细研究状态转换的各个环节,本文为开发人员和系统管理员提供了实用的指导,旨在提升整体系统效率和稳定性。 ... [详细]
  • Python 伦理黑客技术:深入探讨后门攻击(第三部分)
    在《Python 伦理黑客技术:深入探讨后门攻击(第三部分)》中,作者详细分析了后门攻击中的Socket问题。由于TCP协议基于流,难以确定消息批次的结束点,这给后门攻击的实现带来了挑战。为了解决这一问题,文章提出了一系列有效的技术方案,包括使用特定的分隔符和长度前缀,以确保数据包的准确传输和解析。这些方法不仅提高了攻击的隐蔽性和可靠性,还为安全研究人员提供了宝贵的参考。 ... [详细]
author-avatar
love28119_529_700
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有