返回顶部
首页 > 资讯 > 后端开发 > Python >Python实现一个发送程序和接收程序
  • 143
分享到

Python实现一个发送程序和接收程序

2024-04-02 19:04:59 143人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录前言实验设计系统需求架构设计接口设计软件实现实验环境实验结果结果分析前言 实验目的:掌握开发、测试、发布、调用进程间通信的基本方法、工具和流程,理解独立构件体系结构基本原理、结构

前言

实验目的:掌握开发测试、发布、调用进程间通信的基本方法、工具和流程,理解独立构件体系结构基本原理、结构和特点。掌握使用当今主流云平台来构建独立构件风格软件的相关开发技能。

背景及要求: 现今,随着软件开发规模的逐渐增大,软件开发的规范准则也随之发生了变化,从最开始只注重程序正确性运行的算法,到现如今注重在整个开发中的架构模式,软件复用性等等质量属性,软件体系结构的规范化与结构化对软件开发的影响越来越大。其中,数据流风格就是软件体系结构风格中一种典型的风格,其高耦合低内聚的特点和构件的独立性使得软件的复用性很高,适用于需要处理源源不断的数据的系统。

[以上说明来自教材以及自己的理解]

现今,越来越多的企业面临着各种各样的数据集成和系统整合的系统需求,掌握开发、测试、发布、调用进程间通信的基本方法、工具和流程显得很重要。在这样的系统需求之下,rpc中间件技术也应运而生,但由于采用RPC同步处理技术,在性能、健壮性、可扩展性上都存在诸多缺点。而基于消息的异步处理模型则采用非阻塞的调用特性,发送者将消息发送给消息服务器,消息服务器在合适的时候再将消息转发给接收者;发送和接收是异步的,发送者无需等待。使用消息中间件作为一个中间层的软件,掌握使用云计算技术来构建独立构件风格的相关技能。

以下题目任意选做一个:

基于 AWS SQS(亚马逊云)或阿里云等简单队列服务的消息中间件,使用 Java,C#或者其他语言分别编写一个发送程序和接收程序(构建两个进程或者程序,一个用于发送消息–发到云端队列,一个用于接收消息–从云端队列订阅下来),实现“点对点”的进程间通信功能。

提示与思考:

AWS 相关基本操作,在另外一个文档中,里面有基本的如何获取 AWS key,以及如何建立

AWS 连接。

前端页面简洁明了,用户体验较好,重点在后台通信机制。

这种消息队列服务是基础性的,AWS 作为商业云平台提供了针对 SQS 的高可用性解决方案。

如果你基于 kafka 构建消息队列服务,如何确保其高可用性?

相关链接:

AWS .net api,你可以在该链接找到你想要的类及相关方法 Java API:

SQS 官方文档链接:

基于 AWS SNS(亚马逊云),或阿里云消息推送服务,使用 Java、C#或者其他语言编写一个

发送程序和一个接收程序,实现发布-订阅的选择广播式功能,要求订阅者程序为邮件和 SQS 队列。

发布-订阅模式

基于一款开源 JMS 消息中间件(如 Active MQ、Rabbit MQ、kafaka),使用 Java 编写一个发送程序和接收程序,实现点对点和发布-订阅的选择广播式功能,并进行测试。

JMS 选型参考资料:要求:

程序应具有 GUI,发送程序和接收程序可选择发送和接收方式;

通过对话框可以输入发送消息,接收结果可显示于对话框中。

报告结果中要有对于“点对点”和“发布-订阅”两种模式的比较分析。

实验设计

(给出你的实习内容的设计方案,可根据实际情况调整条目)

系统需求

环境需求:

用户需要在 C:\Users\用户名.aws 目录下设置 credentials 和 config 文件,用以保存自己的 AWS 账号信息。

功能需求:

实现发布-订阅模型,完成一对多的异步消息发送,使用数据流体系风格提高复用性。

质量需求:

在遇到错误指令或者系统内部发生错误后可以显示出来,不会因此导致程序崩溃。

架构设计

图 1 数据流架构设计

接口设计

发布者和发送数据功能之间的接口,仅用来传输数据,发布者无需了解数据以怎样的方式发送出去,只需要发送数据。

发送数据和 AWS 代理之间的接口,仅用来传输数据,发送数据的构件无需了解 AWS 代理如何处理数据,只需要发送数据。

AWS 代理和发送构件之间的接口,仅用来传输数据,发送数据的构件无需了解数据如何发送,只需要将数据传输过去,剩下的无需管理。

接受数据和订阅者之间的接口,数据存储在这里,等用户在线的时候推送到用户眼前。

实验过程

软件实现

首先我将该数据流架构分成了三部分,分别是发布者客户端,AWS代理,以及订阅者客户端。数据从发布者发送,流向AWS代理,最终流向订阅者客户段。每个客户端再分别有向AWS 代理发送数据和向AWS接受数据的功能,由两个客户端分别调用。

客户端:

① 客户端涉及自动登录的步骤,如果没有更新AWS的key的话会导致登录失败,抛出对话框显示错误:

图2 登陆界面

② 登录成功后会显示用户界面,用户界面有文本输入框,发送按钮,邮箱接受按钮,以及 SQS 接受按钮,布局方式如右图所示:

其中,每个功能都有自己对应的构件来执行不同的操作。构件之间并没有直接的联系,之间调用的关系都是通过字符串的传输等方式来进行调用。当点击发送消息后会开启

发送消息线程,消息会

发送到 AWS 代理服务 图 3 用户界面

器,代理服务器再发送给所有订阅者,其中邮箱订阅能够通过 QQ 的提示直接查询到消息,形成同步发送接受的通信。

AWS 代理

AWS代理是在AWS控制台线上完成的,只需要确定主题,连接订阅者,就可以发送数据了。

只要我通过代码访问该AWS上的SNS,传入字符串后,就可以完成分发操作了。

图 4 SNS 界面

SQS 接收端

订阅者(SQS)客户端专门负责接受数据,只需要传入队列的名字就可以查询队列收到的消息,也可以选择删除消息,删除在SQS中所查询到的消息。界面如下图所示:

图 5 SQS 队列接受界面

实验环境

处理器: i7-7700HQ  操作系统windows10
开发语言:python 实验场景:宿舍 ;3.3 实验步骤  服务器:AWS

首先我分别写出了两个界面,分别对两个界面进行调试,如下图所示:

图 6 三个界面所对应的函数

每个界面我都分别对界面的布局进行了大量的设置(其实个人感觉这些有些多余,不需要特别炫酷的界面,能用就完事了…)

分别测试了界面的按钮功能以及链接亚马逊后的接受和发送功能,都以打印的方式输出在面板上,供以观察是否出现 bug,

如下图所示:

图7 打印出信息

最后分别调试完毕后,将模块通过数据的发送链接起来,再进行微小的错误调试,就完成了。

实验评价

实验结果

本次实验完成了题目 1 和题目 2 的内容,实现了基于管道数据流风格的点对点消息发送和发布订阅者一对多的消息发布,在设计构件的时候尽量实现了构件的独立性,减少与其他构件之间的耦合程度,仅通过数据(即消息字符串)的传输来串联起整个系统。

我所设计的系统类图如下所示:

结果分析

本次实习基本上完成了目标,实现了点对点和发布订阅的异步通信,和学长交流后发现实际中这是一个将异步通信做成同步通信的过程,当发布者发送消息的时候,如果用户刚好在线,那就会收到发布者的消息,如果不在线,也可以等到自己上线后从接收端接受发布给自己的消息。本次实习的订阅者都需要去主动接受消息,实际中应该会有更完善的机制来通知订阅者消息的到达。这就是本次实习略有局限的地方了。

到此这篇关于Python实现一个发送程序和接收程序的文章就介绍到这了,更多相关Python发送程序与接收程序内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python实现一个发送程序和接收程序

本文链接: https://lsjlt.com/news/120531.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python实现一个发送程序和接收程序
    目录前言实验设计系统需求架构设计接口设计软件实现实验环境实验结果结果分析前言 实验目的:掌握开发、测试、发布、调用进程间通信的基本方法、工具和流程,理解独立构件体系结构基本原理、结构...
    99+
    2024-04-02
  • 一个python程序
    a = [[0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3]]目前通过a可以获取如下格式:       [0,1,2,3]       [0,1,2,3]       [0,1,2...
    99+
    2023-01-31
    程序 python
  • Android开发中如何实现在一个程序中启动另一个程序
    Android开发中如何实现在一个程序中启动另一个程序?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Android 开发有时需要在一个应用中启动另一个应用,比如...
    99+
    2023-05-31
    android roi
  • 微信小程序开发之实现一个跑步小程序
    目录地图组件当前位置开始跑步按钮GPS定位设置前后台允许获取定位开启前后台定位绘制路线自己动手实现一个跑步小程序 用到的方法:wx.onLocationChange,监听实时地理位置...
    99+
    2024-04-02
  • 用Python实现电子邮件接收程序(PO
    从网络上摘抄的代码: import poplib # 输入邮件地址, 口令和POP3服务器地址: email = raw_input('Email: ') password = raw_input('Password: ') p...
    99+
    2023-01-31
    电子邮件 程序 Python
  • C#串口接收程序的实现
    1.代码 using System; using System.Collections.Generic; using System.ComponentModel; using Sys...
    99+
    2024-04-02
  • python实现TCP文件接收发送
    本文实例为大家分享了python实现TCP文件接收发送的具体代码,供大家参考,具体内容如下 下一篇分享:udp收发的实现 先运行服务器端打开接收,在运行客服端发送文件 还有记得改一下...
    99+
    2024-04-02
  • 一个python小程序
    描述:将‘电信4-8,11区’转换成以下形式‘电信4区-电信5区-电信6区-电信7区-电信8区-电信11区’。import re string = input("请输入游戏区:" ) t1 = string.split(',') str=r...
    99+
    2023-01-31
    程序 python
  • 第一个Python程序
    1、使用python命令进入python交互环境[root@python ~]# python Python 2.7.8 (default, Nov 29 2015, 15:20:31)  [GCC 4.4.7 20120313 (Red ...
    99+
    2023-01-31
    第一个 程序 Python
  • python程序发送email的源码
    把开发过程经常用的代码段收藏起来,下边代码段是关于python程序发送email的的代码,应该是对码农们有一些好处。 server = 'smtp.gmail.com:587'; #imports from time import sl...
    99+
    2023-01-31
    源码 程序 python
  • 如何利用C++实现一个简单的电子邮件发送程序?
    如何利用C++实现一个简单的电子邮件发送程序?随着互联网的普及,电子邮件已经成为人们日常生活和工作中不可或缺的一部分。在C++编程中,我们可以利用SMTP(Simple Mail Transfer Protocol)协议实现一个简单的电子邮...
    99+
    2023-11-02
    C++ 电子邮件 发送程序
  • Android编程实现在一个程序中启动另一个程序的方法
    本文实例讲述了Android编程实现在一个程序中启动另一个程序的方法。分享给大家供大家参考,具体如下: Android 开发有时需要在一个应用中启动另一个应用,比如Launch...
    99+
    2022-06-06
    程序 方法 启动 Android
  • 如何实现一个Mybatis程序
    这篇文章主要介绍了如何实现一个Mybatis程序,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。环境说明:jdk 13MySQL 8.0.22maven 3.8.1开发工具:I...
    99+
    2023-06-20
  • Python中怎么开发一个Windows程序
    今天就跟大家聊聊有关Python中怎么开发一个Windows程序,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。安装py2exe, 这是windows平台下一个非常好的python程序...
    99+
    2023-06-17
  • 微信小程序实现接收验证码
    本文实例为大家分享了微信小程序实现接收验证码的具体代码,供大家参考,具体内容如下 效果如下图: wxml部分如下: <!--验证码-->   <view clas...
    99+
    2024-04-02
  • Python程序调用另一个Python程
    Python程序调用另一个python程序,大概有几种调用方式: 这里有两个Python程序,假设分别为a.py和b.py两个程序 1、在a.py里面调用b.py里面的函数,有以下两种情况     (1)在同一文件目录下——这个时候可以直...
    99+
    2023-01-31
    程序 Python
  • Android如何实现接收和发送短信
    每一部手机都具有短信接收和发送功能,下面我们通过代码来实现接收和发送短信功能。  一、接收短信 1、创建内部广播接收器类,接收系统发出的短信广播 2、从获得的内容...
    99+
    2022-06-06
    发送短信 Android
  • Python实现一个简单的验证码程序
      老师讲完random函数,自己写的,虽然和老师示例的不那么美观,智能,但是也自己想出来的,所以记录一下,代码就需要自己不断的自己练习,实战,才能提高啊!不然就像我们这些大部分靠自学的人,何时能学会。还有...
    99+
    2022-06-04
    验证码 简单 程序
  • Springboot详解RocketMQ实现消息发送与接收流程
    springboot+rockermq 实现简单的消息发送与接收 普通消息的发送方式有3种:单向发送、同步发送和异步发送。 下面来介绍下 springboot+rockermq 整合...
    99+
    2024-04-02
  • 基于Python+Pyqt5开发一个应用程序
    介绍你的那个她/他 1. UI —MainWindow设计界面及代码 # -*- coding: utf-8 -*- # Form implementation genera...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作