• 软件开发架构与网络编程


    软件开发架构

    1.什么是软件开发架构

            在编写项目之前需要遵循的代码层面上的规范(运行流程、环节、步骤)

    2.软件开发架构分类

    \bullet  c/s架构:

    client / server        客户端 / 服务端

    eg:客户端就是各种app软件,用户可以通过客户端去体验对应服务器的功能

    \bullet  b/s架构:

    broswer / server        浏览器 / 服务器

    eg:用户通过浏览器来体验对应服务器的服务功能,不需要下载app客户端

    3.架构优劣

    cs架构

            优:通过下载客户端app可以在app软件中高度定制相关服务

            劣:需要先下载客户端占用存储也比较繁琐

    bs架构

            优:不需要下载客户端直接通过浏览器就可以快速体验服务

            劣:定制一些功能的话较为繁琐

    4.架构发展趋势

            发展趋势必然是统一接口原则,如通过微信、支付宝等软件里的很多小程序可以直接体验这些小程序的服务,c/s和b/s交错使用 避免各自的弊端。(当然一切都是利益至上)

    网络编程简介

    1.什么是网络编程

            网络编程是基于互联网编写的代码,可以实现远程数据交互,本质就是解决计算机之间数据的远程交互,最早起源于美国军方。

    2.网络编程的要求

            计算机之间实现数据远程传输的必要条件就是得通过物理连接介质。

    OSI七层协议

            计算机在进行数据交互的标准体系,它将网络分为七成从低到高分别是:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层

    物理层:

            两个硬件之间的通信,常见的物理媒介有光纤、电缆来保证物理连接介质

    数据链路层:

            1.规定了电信号的分组方式

            2.规定了每台计算机都必须有一块网卡 上面有电脑的以太网地址(mac地址)

            3.以太网地址:由12位16进制数组成 前六位(产商编号) 后六位(生产流水线号)

    ps:以太网地址相当于电脑的身份证号 可以根据该地址查找计算机 基于以太网地址实现数据交互。

    网络层:

            1.IP协议规定了任何接入互联网的计算机都必须有一个IP地址

            2.IP地址:

                    IPV4:点分十进制

                    最小:0.0.0.0

                    最大:255.255.255.255

                    IPV6:可以给每一粒沙子分一个IP地址

            3.IP具有定位特征(ip代理隐藏)

    传输层:

            1.PORT协议

                    端口协议规定了一台计算机上每一个正在运行的应用程序必须有一个端口号,用于管理

            2.端口号范围:0----65535;端口号是动态分布的   同一时间同一台电脑端口号不能冲突

                    0--1024:一般操作系统内部需要使用

                    1024--8000:一般是常见的软件使用

                    8000+:可用于我们平时写代码

            3.当关闭应用程序则端口号也会收回当再有程序启动的时候再进行分配

            4.IP+PORT:用于标识全世界任意一台接入互联网的计算机上在某一个在执行的程序

                    IP:用于标识全世界任意一台接入互联网的计算机

                    PORT:用于标识全世界任意一台接入互联网的计算机上某个在执行的程序

            5.网址

                    网址(URL):统一资源定位符 ,本质就是IP+PORT

                            eg:百度网址 www.baidu.com        124.12.11.232

                    ps:只是把IP+RPORT地址换成了一种让人更容易记的形式。

  • 相关阅读:
    14、设计模式之命令模式(Command)
    linux的rmdir 删除一个空的目录、touch 创建空文件、cp 复制文件或目录
    快速开发一个简单实用的MES系统?
    大数据之Set/Map集合
    vue-cli中vuex下$store”未在实例上定义
    [C++ 网络协议] 多线程服务器端
    分布(五)利用python绘制蜂群图
    ssm基于Java web的校园滴滴代驾管理系统毕业设计源码260839
    动态规划的状态设计 | bot 讲课の补题
    2022年毕业生求职找工作青睐哪个行业?
  • 原文地址:https://blog.csdn.net/weixin_52596593/article/details/126159858