25. Python语言 Web 开发 之 Socket 编程 · 第一章 UDP发送与接收数据

本文详细介绍了计算机网络基础知识,包括IP地址、端口、网络通信协议和套接字函数。重点讲解了UDP协议的发送与接收数据,通过创建套接字、发送和接收数据的步骤,并提供了相关函数的使用示例。此外,还介绍了UDP聊天器的实现。文章适合初学者理解网络编程的基本概念和实践。
摘要由CSDN通过智能技术生成

本章主题

  1. 计算机发展史,计算机网络的发展及基础网络概念;
  2. 实现模块与模块之间,不通过 引用 却又能实现 彼此能够灵活访问中间键
  3. IP地址介绍及分类;
  4. 什么是 端口端口 的作用是什么;
  5. 套接字函数 socket()
  6. UDP 发送与接收数据。

  

关键词

  1. 客户端:Client
  2. 浏览器:Browser
  3. 服务端:Server
  4. 目标端口:dest_port
  5. 目标IP:dest_ip
  6. 源IP:scr_ip
  7. 网络通信协议:TCP/IP(Transmission Control Protocol/Internet Protocol) 、UDP
  8. 套接字函数:socket()
  9. 创建套接字方法:socket(family = socket.AF_INET, type = socket.SOCK_DGRAM)
  10. 套接字发送方法:sendto()
  11. 数据:data
  12. 字节型:bytes
  13. 地址:address
  14. 关闭函数:close()

  

前导:

  现在有两个文件:
   文件 a.py

a = "hello world"
print(a)

   文件 b.py

print(a)

  现在如果我想 文件 b 访问到 文件 a 里的内容该怎么做?

  看到这,一定有读者朋友说:用模块啊 、用 “文件访问” 函数啊 ……

  可现在如果我们 不使用 上面这些方法,那我们如何能实现 文件 b 访问到 文件 a 里的内容?

  不通过导入模块的方式,如何实现在 a.py 中存数据,在 b.py 中读数据。

  其实,不同的模块之间存在着 隔离,以保证各自代码之间的 独立性

在这里插入图片描述

  而想要实现不同的模块之间的能够 灵活的访问,就要借助 中间键 从而实现不同的模块之间的够灵活的 彼此访问

在这里插入图片描述

  这是 同一计算机内 不同模块 之间的访问,如果 不同计算机 之间进行传输通信,那么就会使用到 网络。比如QQ,微信等APP。

  即然现在介绍模块之间的 中间键 时提到了 网络 和 各种软件,那我们顺带着也就简单的介绍一下 软件开发架构

  软件开发架构 分为 应用类程序Web类程序;那什么又是 应用类程序Web类程序呢?

  应用类程序:如 QQ、百度云盘 、网易云音乐 等等这类需要下载安装包,并需要对它们进行安装后才能进行使用的程序;

  Web类程序:如 网页版的百度、网页版的知乎、网页版的CSDN等等这类无需下载,直接通过网站地址就能够直接进行访问操作的程序。

  因为这些 程序类型 的不同,我们在进行程序开发的过程中也涉及到了各种不同的 开发架构;比如说:基于上面这两种不同的 程序类型 就有一种 C/S 开发架构。那什么是 C/S 开发架构呢?顾名思义,C:Client 客户端S:Server 服务端。那 客户端 是什么,服务端 又是什么呢?接下来我们也来简单的介绍一下:

  C:Client 客户端;用户使用的 入口 或者 端口 就是 客户端

  S:Server 服务端;一直运行,等待服务别人的 服务器 端口

  刚刚简单的给大家介绍完了 C/S 开发架构,接下来再给大家简单的介绍另外一种开发架构:B/S 开发架构。那什么是 B/S 开发架构呢?

  B:Browser 浏览器;接入网站地址的 入口 或者说是 端口

  S:Server 服务端;一直运行,等待服务别人的 服务器 端口

  典型的使用 B/S 开发架构的案例就是:网页版的百度、网页版的知乎、页游、网页传奇 这类无需下载 .exe 安装文件,但只要连接上网就能直接使用的 Web类程序

  使用 B/S 开发架构常用于 PC端 的开发;它的优势就是:统一入口。同样都是 程序,通过 B/S 开发架构的 程序 就无需再下载 .exe 安装文件,只需要明确 服务器端 的路径地址就可以直接通过 浏览器程序 直接的进行访问和使用。

  看完我对 C/S 开发架构 和 B/S 开发架构 的 简单介绍,我想此时一定会有读者朋友发问:B/S 开发架构 适用于 手机APP端 吗?

  我们现在对手机端程序的使用还是一种基于 C/S 开发架构 的使用模式:应用市场 => 搜索指定程序 => 下载 .exe 安装文件 => 安装 => 使用。那 移动手机端 现在有没有使用 B/S 开发架构的典型案例?即然出现了这个问题,那回复的答案一定是:有的。

  手机APP端使用 B/S 开发架构的典型案例就是:微信小程序。简单的介绍一下:微信 现在逐渐的转化为一个 浏览器,各种不同的 小程序 就是 图标化网站地址;当我们在使用每个不同的 小程序 的时候,就等于通过 微信 · 浏览器 直接访问各个不同的 网站地址。这不就是手机APP端使用 B/S 开发架构的典型案例。

  现在已经简单的介绍完了什么是 C/S 开发架构,什么是 B/S 开发架构,以及它们的各种不同的应用场景;接下来我们再一起来讨论讨论 C/SB/S 之间的关系。

  C/SB/S 之间有什么关系?虽然 B/SB 指的是 浏览器,但是这 浏览器 也是另外的一种 客户端。我们平时玩爬虫时,最常见的一句话是不是:模拟浏览器向服务器发送请求。 这里的 浏览器 也就是另外的一种 客户端

  通过前面这几句话的铺垫引生出下面这个结果:C/S 开发模式中包含于 B/S 开发模式,或者说 B/S 开发模式 是 C/S 开发模式中的一种模式。这个介绍可能有点绕,需要各位读者多读几遍,对这句话多多的细品细品。

  所以,我们之后讲的所有的网络编程都是 基于 C/S 开发架构衍生发展的。

  看到这,我想就会有读者朋友问了:我们之后的学习重心在 B/S 上,为什么我们现在又要学习 C/S 呢?

  因为使用 B/S 架构进行开发学习的时候还需要有前端的基础,因为它是基于Web页面上的,在我们之后讲解完 前端 或者 Django 框架Flask 框架,再回看 B/S 架构自然就 水到渠成 了。所以,我们之后所有的内容都是基于 C/S 架构 PC端进行讲解的。

  

计算机网络的发展及基础网络概念

  前面我们说过:网络 来源于 多台计算机 的应用而来。互联网 最早的应用来自于 二战 时的 信息传递,后来发现这玩意很方便,越用越好用;随着之后战争的结束,市场经济的繁荣,商场之间的战争与博弈,互联网技术 也随之逐渐的民用化、普及化。详细的计算机发展史,在此省略 两千万字,小编我就不在这浪费大家的阅读精力了,感兴趣的朋友可以自己去百度整合学习一下,顺带着把你的学习汇总和心得能够留在评论区,方便给更多的读者朋友进行普及和学习。

  

两台电脑的通信

在这里插入图片描述

  两台计算机通过 网线 链接两台计算机的 网孔 就可以以实现两台计算机 信息互联 的效果;网孔 的作用就是 网线 与计算机的 网卡 进行交互。

  当然 网线 的链接这是实现了两台计算机 物理 上的连接;如果多台计算机互联,传输信息时计算机该如何 甄别 谁是谁呢?这时,我们就需要通过每台计算机专属的 MAC编号 来对计算机进行识别了。

  此时,我们就来介绍一下什么是 MAC编号:每个 网卡 在完成制作后会有一个 唯一标识(全球唯一编号):MAC地址MAC地址(编号) 非常的长且复杂,是一串 48位的二进制编码;如果使用十六进制进行表示的话是一串 12位的十六进制编码。如果,每次进行信息传输前先访问这个 超长且不容易记忆MAC地址 是不是神TMD的繁琐;所以,如果在同一个网络里,在访问计算机前只要输入一个 编号 就能实现传输的话,是不是就方便很多了。这个编号,我们称它为 IP地址IP地址 就是一个编号,使用 IP地址 就能找到对应的 唯一标识 · MAC地址。这个操作,本质上是遵循 ARP协议 进行的一个联网操作。IPMAC 是有在 本质上的区别 的,它们不是一类东西,在这点认知上希望各位读者朋友要明确的理解一下。

  

IP地址介绍及分类

  前面我们已经简单又仔细的介绍了什么是 唯一标识(全球唯一编号):MAC地址,也提出了 IPMAC 是有在 本质上的区别 的。接下来,我们就来详细的了解与解释一下:到底什么是 IP

  

IP地址与IP协议

  规定 网络地址协议IP协议,它定义的 地址 称为 IP地址。现在广泛采用的V4版本的即 IPV4,它规定网络地址由 32位2进制 表示。

  查看本机IP方式:打开 “网络连接” => 双击链接的网络 => 点击 “详细信息…” 就可以查看到当前计算机的 各项联网信息

  第一步: 打开 “网络连接”,双击链接的网络。

第一步:打开 “网络连接”,双击链接的网络。

  第二部: 点击 “详细信息…”

第二部:点击 “详细信息...”

  看到当前计算机的 各项联网信息

看到当前计算机的各项联网信息。

  注意:
    • 一个 IPV4地址 通常写成 四段 十进制数,以 “.” 进行分隔;
    • IPV4地址值 的范围 0.0.0.0 - 255.255.255.255。

  

Windows 和 Linux 查看网卡信息

  通过 终端 调取IP信息的方法: 按 win键 + R ,在 “运行” 对话框里输入 “CMD”,点击 “确定</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值