学习笔记:Python网络编程初探之基本概念(一)
一、网络目的
让你设备上的数据和其他设备上进行共享,使用网络能够把多方链接在一起,然后可以进行数据传递。
网络编程就是,让在不同的电脑上的软件能够进行数据传递,即进程之间的通信。
二、IP地址的作用
用来标记唯一一台电脑
1. Linux查看IP地址
输入命令ifconfig


2. Window查看IP地址
快捷键win+R打开运行,输入cmd,然后输入命令ipconfig

3. Linux下关闭网卡
Ctrl+A:快速回到行首
Ctrl+E:快速回到行尾
(1)关闭网卡

(2)开启网卡

三、IP地址分类
IPV4个数:256*256*256*256(瓜分完了,不够用)
IPV6:
每一个IP地址包括两部分:网络地址和主机地址

1. A类IP地址
一个A类IP地址由1字节的网络地址(网络号)和3字节主机地址(主机号)组成,网络地址的最高位必须是“0”。
- 地址范围:1.0.0.1 - 126.255.255.254
- 二进制表示为:00000001 00000000 00000000 00000001 - 01111110 11111111 11111111 11111110
- 可用的A类网络有126个,每个网络能容纳16777214个主机。
2. B类IP地址
一个B类IP地址由2个字节的网络地址(网络号)和2个字节的主机地址(主机号)组成,网络地址的最高位必须是“10”。
- 地址范围:128.1.0.1 - 191.255.255.254
- 二进制表示为:10000000 00000001 00000000 00000001 - 10111111 11111111 11111111 11111110
- 可用的B类网络有16384个,每个网络能容纳65534个主机。
3. C类地址
一个C类IP地址由3个字节的网络地址和1个字节的主机地址组成,网络地址的最高位必须是“110”。
- 范围:192.0.1.1 - 223.255.255.254
- 二进制表示为:11000000 00000000 00000001 00000001 - 11011111 11111111 11111110 11111110
- C类网络可达2097152个,每个网络能容纳254个主机。
4. D类地址用于多点广播
D类IP地址第一个字节以“1110”开始,它是一个专门保留的地址。
它并不指向特定的网络,目前这一类地址被用在多点广播(Multicast)中。
多点广播地址用来一次寻址一组计算机,地址范围224.0.0.1 - 239.255.255.254。
5. E类IP地址
以“1111”开始,为将来使用保留。E类地址保留,仅作实验和开发用。
6. 私有ip
在这么多网络IP中,国际规定有一部分IP地址是用于我们的局域网使用,也就是属于私网IP,不在公网中使用的,它们的范围是:
- 10.0.0.0 ~ 10.255.255.255
- 172.16.0.0 ~ 172.31.255.255
- 192.168.0.0 ~ 192.168.255.255
四、端口
1. 什么是端口?
提出问题:当两台电脑上同时运行多个程序时,通过IP地址数据可以到达,但该给电脑中哪个程序呢?
计算机通过IP地址找到目标设备后,还需要用端口号区分设备上不同的软件服务。例如:
- 浏览网页:默认用80端口(HTTP)或443端口(HTTPS)
- 发邮件:用25端口(SMTP)
- 下载文件:用21端口(FTP)
网络端口的作用可以理解为计算机的“门牌号”。就像一栋大楼有很多房间(服务),每个房间有唯一的门牌号(端口号),方便快递员(数据)准确找到对应的房间。

如果一个程序需要收发网络数据,那么就需要有这样的端口在Linux系统中,端口可以有65536(2的16次方)个之多!既然有这么多,操作系统为了统一管理,所以进行了编号,这就是端口号。
2. 端口号
端口是通过端口号来标记的,端口号只有整数,范围是从0到65535。
注意:端口号不一样的*nix系统不一样,还可以手动修改。
3. 端口是怎样分配的
端口号不是随意使用的,而是按照一定的规定进行分配
(1)知名端口(0-1023)
众所周知的端口,范围-到1023。由国际组织IANA统一管理,专门分配给最常用的网络服务:
- 80端口:网页服务(HTTP)→ 相当于"官方网站入口"
- 443端口:加密网页(HTTPS)→ 类似"银行VIP通道"
- 22端口:安全远程登录(SSH)→ 类似"机房管理专用门"
(2)注册端口(1024-49151)
企业可向IANA申请注册专用端口,比如:
- 3306端口:MySQL数据库
- 3389端口:Windows远程桌面
- 5432端口:PostgreSQL数据
(3) 动态端口
动态端口的范围是从1024到65535
之所以称为动态端口,是因为它一般不固定分配某种服务,而是动态分配。
动态分配是指当一个系统程序或应用程序程序需要网络通信时,它向主机申请一个端口,主机从可用的端口号中分配一个供它使用。
当这个程序关闭时,同时也释放了所占用的端口号。
(4)怎样查看端口号
Linux 系统:
- 使用
netstat命令:如netstat -tulnp可以查看所有监听中的 TCP 和 UDP 端口,并显示对应的进程 ID 和程序名称。若只想查看特定端口,如 22 端口的使用情况,可使用netstat -tnlp | grep ":22"4。 - 使用
ss命令:ss是netstat的现代替代品,性能更优,常用ss -tuln查看端口,若查看特定端口,如查看端口号 22 的使用情况,可使用ss -tnlp | grep ":22"4。 - 使用
lsof命令:lsof -i:<端口号>可以列出使用该端口的进程信息,如lsof -i:80可查看使用 80 端口的进程。

Windows 系统:
使用命令提示符(CMD)
netstat命令:打开命令提示符,输入netstat -ano,可列出所有网络连接和监听端口,显示本地地址、外部地址、状态以及对应的进程 ID。若只想查看正在监听的端口,可使用netstat -anl。要以数字格式显示地址和端口信息,可使用netstat -n5。tasklist命令配合netstat:先使用netstat -ano找到占用特定端口的进程 ID,再使用tasklist /fi "pid eq <进程ID>"查看对应的进程名称和详细信息。
使用任务管理器:
- 打开任务管理器,切换到 “性能” 选项卡,点击 “资源监视器”,在 “网络” 选项卡中可以查看正在使用的端口以及对应的进程。
五、Socket介绍
1. 不同电脑上的进程如何通信
首要解决的问题是如何唯一标识一个进程,否则通信无从谈起!
在1台电脑上可以通过进程号(PID)来唯一标识一个进程,但是在网络中是行不通的。
起始TCP/IP协议协议族帮我们解决了这个问题,网络层的IP地址可以唯一标识网络中的主机,而传输层的“协议+端口”可以唯一标识主机中应用进程。
这样利用ip地址 + 协议 + 端口就可以标识网络的进程了,网络中的进程通信就可以利用这个标志与其它进程进行交互。
2. 什么是Socket?
socket(简称套接字)是进程间通信的一种方式,其他进程间通信的~主要不同是:它能实现不同主机间的进程间通信,我们网络上各种各样的服务大多都是基于 Socket 来完成通信的例如我们每天浏览网页、QQ 聊天、收发emai 等等。

3. 创建Socket
在python中,使用socket模块的函数socket就可以完成:
import socket
socket.socket(AdressFamily,Type)
总结:所以说会了socket直白来讲,你接下来编写的程序,你就可以完成网络功能
创建一个TCP Socket
import socket # 导入 Python 内置的 socket 模块,用于网络编程 # 创建 TCP 套接字
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# - socket.AF_INET:指定使用 IPv4 地址族(常见的网络地址类型)。
# - socket.SOCK_STREAM:指定使用 TCP 协议,特点是面向连接、可靠传输,数据无丢失、按序到达。 # ...这里是使用套接字的功能(省略)...
# 实际使用中,会在此处添加绑定地址端口(bind)、监听(listen)、接受连接(accept)、收发数据(send/recv)等逻辑。
创建一个UDP Socket
import socket # 导入 socket 模块 # 创建 UDP 套接字
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# - socket.AF_INET:同样指定 IPv4 地址族。
# - socket.SOCK_DGRAM:指定使用 UDP 协议,特点是无连接、不可靠传输,适合对实时性要求高但允许少量丢包的场景(如视频直播、游戏通信)。 # ...这里是使用套接字的功能(省略)...
# 实际使用中,会在此处添加绑定地址端口(bind)、收发数据(sendto/recvfrom)等逻辑。 s.close() # 关闭 UDP 套接字,释放资源。 相关文章:
学习笔记:Python网络编程初探之基本概念(一)
一、网络目的 让你设备上的数据和其他设备上进行共享,使用网络能够把多方链接在一起,然后可以进行数据传递。 网络编程就是,让在不同的电脑上的软件能够进行数据传递,即进程之间的通信。 二、IP地址的作用 用来标记唯一一台电脑…...
高效处理 List<T> 集合:更新、查找与优化技巧
引言 在日常开发中,List<T> 是我们最常用的数据结构之一。无论是批量更新数据、查找特定项还是进行复杂的集合操作,掌握 List<T> 的高级用法可以显著提高代码的效率和可读性。本文将详细介绍如何使用 List<T> 进行批量更新、查找匹配项以及优化性能的方法…...
HTML5(Web前端开发笔记第一期)
p.s.这是萌新自己自学总结的笔记,如果想学习得更透彻的话还是请去看大佬的讲解 目录 三件套标签标题标签段落标签文本格式化标签图像标签超链接标签锚点链接默认链接地址 音频标签视频标签 HTML基本骨架综合案例->个人简介列表表格表单input标签单选框radio上传…...
Windows控制台函数:标准输入输出流交互函数GetStdHandle()
目录 什么是 GetStdHandle? 它长什么样? 怎么用它? 它跟 std::cout 有什么不一样? GetStdHandle 是一个 Windows API 函数,用于获取标准输入、标准输出或标准错误设备的句柄。它定义在 Windows 的核心头文件 <…...
Vue3 中 Computed 用法
Computed 又被称作计算属性,用于动态的根据某个值或某些值的变化,来产生对应的变化,computed 具有缓存性,当无关值变化时,不会引起 computed 声明值的变化。 产生一个新的变量并挂载到 vue 实例上去。 vue3 中 的 com…...
常见的三种锁
一、互斥锁 互斥锁 Mutex 保证在任意时刻只有一个线程能够进入被保护的临界区。当一个线程获取到互斥锁后,其他线程若要进入临界区就会被阻塞,直到该线程释放锁。 互斥锁是一种阻塞锁,当线程无法获取到锁时,会进入阻塞状态。 应…...
离线文本转语音库pyttsx3(目前接触到的声音效果最好的,基本上拿来就能用)
在现代应用程序中,文本转语音(Text-to-Speech, TTS)技术越来越受到重视。无论是为视力障碍人士提供帮助,还是为教育和娱乐应用增添趣味,TTS 都能发挥重要作用。今天,我们将介绍一个简单易用的 Python 库——…...
LeetCode Hot100刷题——反转链表(迭代+递归)
206.反转链表 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head [1,2,3,4,5] 输出:[5,4,3,2,1]示例 2: 输入:head [1,2] 输出:[2,1]示例 3&#…...
JJJ:linux sysfs相关
文章目录 1.sysfs(属性)文件的创建、读、写1.1 创建流程1.2 open流程1.3 read流程 2.补充2.1 sysfs下常见目录介绍2.2 属性相关2.2.1 简介2.2.2 attribute文件的创建 2.3 sysfs目录如何创建的 1.sysfs(属性)文件的创建、读、写 1…...
Leetcode 刷题记录 06 —— 矩阵
本系列为笔者的 Leetcode 刷题记录,顺序为 Hot 100 题官方顺序,根据标签命名,记录笔者总结的做题思路,附部分代码解释和疑问解答。 目录 01 矩阵置零 方法一:标记数组 方法二:两个标记变量 02 螺旋矩阵…...
什么样的物联网框架适合开展共享自助KTV唱歌项目?
现在物联网的广泛应用,也让更多用户们看到了它的实力,也使得共享经济遍地开花。其中共享自助唱歌设备也备受欢迎,那么适合开展共享自助KTV唱歌项目的物联网框架都应具备哪些特点呢? 智能化与自动化管理 物联网技术在共享KTV中的应…...
【Academy】HTTP Host 标头攻击 ------ HTTP Host header attacks
HTTP Host 标头攻击 ------ HTTP Host header attacks 1. 什么是 HTTP Host 标头?2. 什么是 HTTP Host 标头攻击?3. HTTP Host 标头漏洞是如何产生的?4. 如何测试 HTTP Host 标头漏洞4.1 提供任意 Host 标头4.2 检查有缺陷的验证4.3 发送不明…...
Web基础:HTML快速入门
HTML基础语法 HTML(超文本标记语言) 是用于创建网页内容的 标记语言,通过定义页面的 结构和内容 来告诉浏览器如何呈现网页。 超文本(Hypertext) 是一种通过 链接(Hyperlinks) 将不同文本、图像…...
技术领域,有许多优秀的博客和网站
在技术领域,有许多优秀的博客和网站为开发者、工程师和技术爱好者提供了丰富的学习资源和行业动态。以下是一些常用的技术博客和网站,涵盖了编程、软件开发、数据科学、人工智能、网络安全等多个领域: 1. 综合技术博客 1.1 Medium 网址: ht…...
k8s概念及k8s集群部署(Centos7)
Centos7部署k8s集群 部署之前,先简单说下k8s是个啥: 一、k8s简介: k8s,全称:kubernetes,它可以看作是一个分布式系统支撑平台。k8s的作用: 1、故障自愈: k8s这个玩意可以监控容器…...
《DeepSeek-V3:动态温度调节算法,开启推理新境界!》
在人工智能领域不断探索的征程中,DeepSeek-V3以其卓越的创新技术,尤其是动态温度调节算法,成为了备受瞩目的焦点。这项算法犹如一把神奇的钥匙,巧妙地开启了推理速度与精度动态平衡的大门,为大语言模型的发展开辟了新的…...
Python从入门到精通1:FastAPI
引言 在现代 Web 开发中,API 是前后端分离架构的核心。FastAPI 凭借其高性能、简洁的语法和自动文档生成功能,成为 Python 开发者的首选框架。本文将从零开始,详细讲解 FastAPI 的核心概念、安装配置、路由设计、请求处理以及实际应用案例&a…...
fastapi+angular停车管理系统可跨域
说明: 我计划用fastapiangular做一款停车管理系统,支持跨域 1.设计mysql数据库表, 2.建表,添加测试数据,多表查询, 3.在fastapi写接口查询数据, 4.用postman测试, 5.在angular前端展…...
前端题目类型
HTMLCSS常见面试题 HTML标签有哪些行内元素 img、picture、span、input、textarea、select、label 说说你对元素语义化的理解 元素语义化就是用正确的元素做正确的事情。虽然理论上所有html元素都可通过css样式实现相同效果,但这样会使事情复杂化,所以需…...
openwrt路由系统------lua、uci的关系
1. Luci 的核心组成 (1) Lua 简介:Luci 的界面和逻辑几乎完全使用 Lua 脚本语言编写。Lua 是一种轻量级、高效的嵌入式脚本语言,适合在资源受限的路由器环境中运行。作用: 生成动态 Web 页面(与后端交互渲染 HTML)。处理用户提交的表单数据(如修改 Wi-Fi 密码)。调用系…...
wordpress后台更新后 前端没变化的解决方法
使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...
最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...
Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...
均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...
【JVM】Java虚拟机(二)——垃圾回收
目录 一、如何判断对象可以回收 (一)引用计数法 (二)可达性分析算法 二、垃圾回收算法 (一)标记清除 (二)标记整理 (三)复制 (四ÿ…...
并发编程 - go版
1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...

