Python入门开发学习笔记之C/S架构介绍

C/S架构系统自动化测试入门 所谓C/S架构即Client/Server(客户端/服务器架构)。虽然近年来C/S架构产品越来越少,大有被B/S(Browser/Server 浏览器/服务器)架构超越的趋势,但C/S还是有B/S不可替代的优势(如系统速度快,用户体验好,处理能力强且可以实现复杂业务功能等)。本文以网易云音乐客户端为例,介绍C/S结构系统自动化测试方法,操作系统为Windows10,使用工具为Python2.7+AutoIt V3。 阅读详情

本节重点:

  • 了解C/S架构
  • 计算机基础知识
  • 了解什么是网络

本节时长需控制在35-45分钟内

什么是C/S架构

C指的是client(客户端软件),S指的是Server(服务端软件),本章的重点就是教大家写一个C/S架构的软件,实现服务端软件与客户端软件基于网络通信。

计算机基础知识

作为应用开发程序员,我们开发的软件都是应用软件,而应用软件必须运行于操作系统之上,操作系统则运行于硬件之上,应用软件是无法直接操作硬件的,应用软件对硬件的操作必须调用操作系统的接口,由操作系统操控硬件。

比如客户端软件想要基于网络发送一条消息给服务端软件,流程是:

1、客户端软件产生数据,存放于客户端软件的内存中,然后调用接口将自己内存中的数据发送/拷贝给操作系统内存

2、客户端操作系统收到数据后,按照客户端软件指定的规则(即协议)、调用网卡发送数据

3、网络传输数据

4、服务端软件调用系统接口,想要将数据从操作系统内存拷贝到自己的内存中

5、服务端操作系统收到4的指令后,使用与客户端相同的规则(即协议)从网卡接收到数据,然后拷贝给服务端软件

什么是网络

硬件之上安装好操作系统,然后装上软件你就可以正常使用了,但此时你也只能自己使用,像下图这样,每个人都拥有一台自己的机器,然而彼此孤立。

如何能大家一起玩耍,那就是联网了,即internet

然而internet为何物?举一个简单的例子: 如果把一个人与这个人的有线电话比喻为一台计算机,那么其实两台计算机之间通信与两个人打电话之间通信的原理是一样的。 两个人之间想要打电话首先一点必须是接电话线,这就好比是计算机之间的通信首先要有物理链接介质,比如网线,交换机,路由器等网络设备。 通信的线路建好之后,只是物理层面有了可以承载数据的介质,要想通信,还需要我们按照某种规则组织我们的数据,这样对方在接收到数据后就可以按照相同的规则去解析出数据,这里说的规则指的就是:中国有很多地区,不同的地区有不同的方言,为了全中国人都可以听懂,大家统一讲普通话

普通话属于中国国内人与人之间通信的标准,那如果是两个国家的人交流呢?

问题是,你不可能要求一个人/计算机掌握全世界的语言/标准,于是有了世界统一的通信标准:英语

英语成为世界上所有人通信的统一标准,计算机之间的通信也应该有一个像英语一样的通信标准,这个标准称之为互联网协议, 可以很明确地说:互联网协议就是计算机界的英语,网络就是物理链接介质+互联网协议。 我们需要做的是,让全世界的计算机都学会互联网协议,这样任意一台计算机在发消息时都严格按照协议规定的格式去组织数据,接收方就可以按照相同的协议解析出结果了,这就实现了全世界的计算机都能无障碍通信。 按照功能不同,人们将互联网协议分为osi七层或tcp/ip五层或tcp/ip四层(我们只需要掌握tcp/ip五层协议即可),这种分层就好比是学习英语的几个阶段,每个阶段应该掌握专门的技能或者说完成特定的任务,比如:1、学音标 2、学单词 3、学语法 4、写作文。。。

每层运行常见物理设备(了解)

什么是TCP/IP?

Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础

TCP/IP的起源

20世纪50年代末,正处于冷战时期。当时美国军方为了自己的计算机网络在受到袭击时,即使部分网络被摧毁,其余部分仍能保持通信联系,便由美国国防部的高级研究计划局(ARPA)建设了一个军用网,叫做“阿帕网”(ARPAnet)。阿帕网于1969年正式启用,当时仅连接了4台计算机,供科学家们进行计算机联网实验用,这就是因特网的前身。

到70年代,ARPAnet已经有了好几十个计算机网络,但是每个网络只能在网络内部的计算机之间互联通信,不同计算机网络之间仍然不能互通。为此, ARPA又设立了新的研究项目,支持学术界和工业界进行有关的研究,研究的主要内容就是想用一种新的方法将不同的计算机局域网互联,形成“互联网”。研究人员称之为“internetwork”,简称“Internet”,这个名词就一直沿用到现在。

终于到1974年,TCP/IP诞生啦,TCP/IP有一个非常重要的特点,就是开放性,即TCP/IP的规范和Internet的技术都是公开的。目的就是使任何厂家生产的计算机都能相互通信,使Internet成为一个开放的系统,这正是后来Internet得到飞速发展的重要原因。

OSI七层模型

美国国防部在开发tcp/ip的同时,还有一些其它大厂商也开发出了自己的网络体系,实际上世界上第一个网络体系结构由IBM公司提出(也是74年,比TCP/IP略早,SNA),以后其他公司也相继提出自己的网络体系结构如:Digital公司的DNA,美国国防部的TCP/IP等,多种网络体系结构并存,其结果是若采用IBM的结构,只能选用IBM的产品,只能与同种结构的网络互联。

这就像中国人说中文,美国人说英语,日本人说日本话一样,同一国家的人沟通没问题,但不同国家之间的人没法通信。为了解决网络通信中这样不互通的问题,国际标准化组织ISO于1977年成立了一个委员会,在现有网络的基础上,提出了不基于具体机型、操作系统或公司的网络体系结构,称为开放系统互联模型。

OSI/RM模型(Open System Interconnection / Reference Model)的设计目的是成为一个所有计算机厂商都能实现的开放网络模型,来克服使用众多私有网络模型所带来的困难和低效性。

在Linux下开发C/S架构程序 在Linux下开发C/S架构程序,选择范围很广。 阅读详情

相关推荐

python Socket网络编程实现C/S模式、P2P

python Socket网络编程实现C/S模式、P2PC/S模式TCP/IP协议服务端:客户端:UDP协议服务端客户端C/S模式的应用程序服务端客户端P2P模式注意总结 C/S模式 由于网络课需要实现Socket网络编程,所以简单实现了一下,C/S模式分别用TCP/IP协议与UDP协议实现,下面将分别讲解。 TCP/IP协议 TCP/IP协议是面向连接的,即客户端与服务器需要先建立连接后才能传输数据,以下是服务器端的代码实现。 服务端: import socket from threading impor

asfsfsdc的博客 3030

Python 网络编程(4)网络编程基础:C/S架构(五层模型)

网络编程基础:C/S架构1. C/S架构2. 互联网协议2.1 物理层2.2 数据链路层2.3 网络层2.4 传输层TCP协议UDP协议socket 1. C/S架构 C指的是client(客户端软件),S指的是Server(服务端软件),C/S架构就是基于网络实现客户端与服务端通信的软件架构,能够实现服务端软件与客户端软件基于网络通信。 2. 互联网协议 网络 = 物理链接介质 + 互联网协议 (之前真的理解了“网络”?) 计算机之间的通信标准,这个标准称之为互联网协议,按照功能不同,人们将互联网协议

Robin_Pi的博客 1935

基于UDP协议的C/S架构的图传+数传 Python实现

基于UDP协议的C/S架构的图传+数传 Python实现 起因 在做4G 无人机的飞控系统 写了一个数传+图传模块 亲测移动运营商4G打洞失败 故放弃P2P 使用C/S架构 结构 分3端: 服务端 Server 飞机端 FMC 地面控制端 Controller 或者: 发送端 接收端 服务端 发送端 通过UDP协议向服务器的指定端口发送数据 接收端 心跳机制 每隔一定之间(如1s): 向服务端的心跳端口发送心跳包 服务器会接收这个端口 知道该套接字的地址来向其发送数据 向服务器发给你数据的端口发送

weixin_43528943的博客 1399

pythoncs模式_网络安全之python C/S模式基础编程

编程">1. socket编程socket类型包括:——TCP socket 和 UDP socket。常规的客户服务区模式。——Raw socket可用于嗅探和注入2. C/S模式C/S (Client/Server,客户机/服务器)模式又称C/S结构,是20世纪80年代末逐步成长起来的一种模式,是软件系统体系结构的一种。C/S结构的关键在于功能的分布,一些功能放在前端机(即客户机)上执行...

weixin_39955418的博客 589

C/S架构与B/S架构的区别详解

C/S架构(Client/Server Architecture)和B/S架构(Browser/Server Architecture)是两种常见的系统架构模式,用于构建网络应用程序。本文将详细探讨C/S架构和B/S架构之间的区别,并提供相应的源代码示例。C/S架构更加灵活,适用于需要高度交互和复杂业务逻辑的应用程序,而B/S架构更加简单、易于维护,并且适用于面向广大用户的Web应用程序。总结起来,C/S架构是基于客户端和服务器之间的分布式计算模型,而B/S架构是基于浏览器和服务器之间的模型。

ByteJolt的博客 516

基于python实现简单C/S模式代码实例

主要介绍了基于python实现简单C/S模式代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

C/S和BS两种开发模型

C/S和BS两种开发模型一、什么是C/S开发模式?二、什么是B/S开发模式?三、C/S和B/S的优缺点 一、什么是C/S开发模式?        C/S⼜称Client/Server或客户/服务器模式。服务器通常采⽤⾼性能的PC、⼯作站或⼩型机,客户端需要安装专⽤的客户端软件。如QQ,微信等软件。 二、什么是B/S开发模式?        B/S是Brower/Serv

D_AKJS 3887

用Python编写一个简单的CS架构后门的方法

今天小编就为大家分享一篇关于用Python编写一个简单的CS架构后门的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

C/S 和 B/S 架构介绍

说白了就是浏览器/服务器,实际上B/S架构就是一个特殊的C/S架构,只不过这个C比较特殊,是浏览器软件。5.开发B/S架构的系统,其实就是在开发网站,其实就是在开发一个web系统。说白了就是客户端/服务端,我们需要安装特定的客户端软卷,例如:QQ。4.B/S和C/S架构哪个好,哪个不好?1.系统架构包括哪些形式?C/S架构的优缺点是什么?6.JavaEE是什么?2.什么是C/S架构?3.什么是B/S架构?Java分为三个部分。

拒绝八股,追寻本质。 2048

IQA图像质量评价 数据集介绍(LIVE、TID2013、CSIQ、LIVEC、KonIQ-10K)

LIVE、TID2013、CSIQ、LIVEC、KonIQ-10K 数据集介绍

qq_37925923的博客 1万+

差分信号_差分信号的原理及其在PCB的设计

差分线是 PCB 设计中非常重要的一部分信号线,信号处理要求也是相当严谨,今天为大家介绍下差分信号的原理以及其在 PCB 设计中的处理方法。 什么是差分信号 差分传输是一种信号传输的技术,区别于传统的一根信号线一根地线的做法,差分传输在这两根线上都传输信号,这两个信号的振幅相等,相位相差 180 度,极性相反。在这两根线上传输的信号就是差分...

weixin_31849185的博客 1812

C/S架构程序设计

C/S架构程序设计【实验内容】 实现Client端程序,用已建立连接并向Server端发送数据 使用进程方式实现Server端程序,用于接受Client端传来的数据并将运算结果返回Client端 使用线程方式实现Server端程序,用于接受Client端传来的数据并将运算结果返回Client端 比较两种方式Server端程序的效率 【程序实现】CLient端程序 import socket

dydxdz的博客 5030

Mac上SSH连接神器SecureCRT:从安装到高效使用的完整指南

本文详细介绍了Mac上专业SSH连接工具SecureCRT的安装与高效使用技巧。从核心优势、会话管理到快捷键方案,全面解析如何提升远程开发与服务器管理效率。特别适合需要处理多服务器环境和复杂终端控制的Mac用户,SecureCRT的企业级加密和跨平台同步功能使其成为SSH连接的神器。

weixin_30642561的博客 494

python网络编程:TCP/IP、Socket、C/S架构等

网络编程 套接字 Socket来源 通信的基石,是支持TCP/IP协议的网络通信的基本操作单元 属性:三元组(ip地址, 协议,端口) 域 类型 协议 IP地址 IP地址是一个32位的二进制数就是4个字节 通过指定的端口和协议找到服务器名 import socket def find_service_name(): protocolname = 'tcp' ...

大飞的博客 7250

侧杆试验 - 高速撞击 - 显式动力学 - ANSYS Workbench

显式动力学是一种时间积分方法,用于在速度很重要时执行动态模拟。显式动力学考虑快速变化的条件或不连续事件,例如自由落体、高速撞击和施加的负载。由于这些“非线性动力学”已集成到模拟中,因此显式动力学是模拟高度瞬态物理现象的首选。有些侧面碰撞是指车辆侧向撞上路边的坚硬物体,如树木或电线杆。这通常是由于驾驶员失去控制、超速、误判拐角或在湿滑路面上打滑造成的。

jianqimingtian的博客 1289

STM32H723串口接收全为0 & CAN错误中断问题

STM32H723串口接收全为0 和 叠加的导致CAN错误问题

weixin_38743772的博客 3916

基于 Python Flask 的 B/S 架构项目的软件设计思路

摘要: 本文探讨了基于Python Flask框架的B/S(Browser/Server)架构软件设计方法。B/S架构通过浏览器作为客户端,服务器端处理业务逻辑,具有跨平台、易维护和部署便捷的特点。文章详细分析了B/S架构的组成层次(表示层、业务逻辑层、数据访问层),并与C/S架构进行对比,强调其优势。Flask作为轻量级后端框架,在B/S架构中承担HTTP请求处理、业务逻辑实现和API接口提供等核心功能。设计原则包括分层架构、松耦合、高内聚和可扩展性,并通过代码示例展示了前后端分离的实现方式。该设计思路适

climber1121的博客 1798

STEP 7-Micro/WIN SMART 编程软件:从入门到精通的使用指南

通过不断实践,熟悉软件的各项功能和操作技巧,工程师可更好地应对工业自动化控制中的各种挑战,开发出高效、稳定的控制程序。项目的基本组件是构成程序的核心元素,包括:程序块(主程序 OB1、子程序和中断程序)、数据块(给 V 存储器赋初值)、系统块(硬件组态和参数设置)、符号表(用符号代替存储器地址,使程序更易理解)以及状态图表(监视、修改和强制变量状态)。下载程序时,单击工具栏上的 “下载” 按钮,在弹出的下载对话框中选择要下载的块(程序块、数据块、系统块),单击 “下载” 即可。

电工 5573

Python 网络编程从入门到精通:架构、协议与 Socket 实现

本文系统介绍了Python网络编程的核心知识,内容包括:网络架构模式(C/S、B/S、P2P)、网络通信三要素(IP地址、端口号、传输协议)、TCP/UDP协议对比及其工作原理。重点讲解了Socket编程方法,提供TCP/UDP服务器与客户端的完整实现代码,并涵盖多线程处理、非阻塞I/O等高级技术。文章还给出了错误处理和资源管理的最佳实践,适合开发各类网络应用。通过学习这些内容,读者可以掌握Python网络编程的基本技能并为进一步学习高级网络技术奠定基础。

weixin_65516460的博客 2935

c#仿热血江湖

Int32_1 = (int) table.Rows[i]["FLD_初级附魂"],Int32_2 = (int) table.Rows[i]["FLD_中级附魂"],Int32_3 = (int) table.Rows[i]["FLD_是否绑定"],Int32_0 = (int) table.Rows[i]["FLD_进化"],Form1.smethod_1(2, "加载百宝阁物品----没有百宝阁数据");Form1.smethod_1(2, "加载物品商店----没有物品数据");

weixin_42132177的博客 143

学Simulink——基于直流电机的建模与控制场景实例:他励直流电机的起动与制动过程仿真

直流电机在工业控制、电动车辆、自动化设备中广泛应用。其中,他励直流电机(Separately Excited DC Motor)因其励磁绕组与电枢绕组分别供电,具有良好的调速性能和启动特性,常用于需要平稳启动和精确控制的场合。在实际应用中,电机的启动过程和制动过程对电网、机械系统以及电机本身都具有重要影响。因此,仿真分析他励直流电机的启动与制动特性,是电机控制设计的重要环节。本文将详细介绍如何使用构建一个他励直流电机的启动与制动过程仿真模型,并通过仿真分析其动态响应。本文详细介绍了如何使用构建一个。

xiaoheshang_123的博客 227

3种库存管理系统技术栈对比:C/S架构 vs B/S架构 vs 低代码平台

本文深入对比了三种库存管理系统技术栈:C/S架构、B/S架构和低代码平台,从开发成本、部署复杂度、扩展性和维护性等维度进行全面分析。针对不同企业规模和需求场景,提供了技术选型决策框架和行业适配建议,帮助技术决策者选择最适合的软件工程方案。

weixin_33858336的博客 782

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Python C/S Flask 架构 Server端

在开发过程中如果远景有变成B/S,还是用一个比较好重构的架构,有很多的选择,在这里我选择Python C/S Flask 架构,这里只记录 Server端的代码。from . import YYYY #下一步的Python代码。运行后,可以看到服务已经开启, 并且可以用浏览器测试服务已经开启。/zzz/YYYY“,可以正常返回结果。# 创建一个蓝图的对象。在__init__中。# 定义服务 的路由。

hwh0108的专栏 391

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

python网络编程,网络架构、交换机、路由器,B/S和C/S架构,详细阐述

假设,你想要在腾讯云租一台服务器,就可以根据自己的需求去选择配置,腾讯云会根据配置在他的物理机上虚拟出一个服务器,并进行相应的环境初始化并绑定公网固定IP,这样你就可以快速拥有一台可以被大家访问的服务器了。按理说,每个从运营商接入网的用户都可以有一个外网IP,但由于全球用户太多而IP根本就不够分配,所以,运营商网络会进行划分,让多个家庭宽带用户共用一个公网IP(动态,可能每次上网公网IP都不一样)。例如:中国万网(阿里云收购),中国新网,新网互联,商务中国,中国频道等。

Python 564

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

上一篇: python入门学习笔记之面向对象设计与开发
下一篇: python入门开发学习笔记之TCP/IP五层模型讲解
程序员_大白
博客等级 码龄5年 1万+粉丝 4001原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值