python网络通信之基础知识填坑
文章目录
- 版权声明
- 网络通信要素
- IP地址
- ifconfig和ping命令
- ifconfig (Interface Configuration)
- ping
- 端口和端口号的介绍
- 端口号的分类
- socket介绍
- TCP
- TCP简介
- TCP的特点
- UDP
- UDP简介
- UDP特点
版权声明
- 本博客的内容基于我个人学习黑马程序员课程的学习笔记整理而成。我特此声明,所有版权属于黑马程序员或相关权利人所有。本博客的目的仅为个人学习和交流之用,并非商业用途。
- 我在整理学习笔记的过程中尽力确保准确性,但无法保证内容的完整性和时效性。本博客的内容可能会随着时间的推移而过时或需要更新。
- 若您是黑马程序员或相关权利人,如有任何侵犯版权的地方,请您及时联系我,我将立即予以删除或进行必要的修改。
- 对于其他读者,请在阅读本博客内容时保持遵守相关法律法规和道德准则,谨慎参考,并自行承担因此产生的风险和责任。本博客中的部分观点和意见仅代表我个人,不代表黑马程序员的立场。
网络通信要素
- 网络:将具有独立功能的多台计算机通过通信线路和通信设备连接起来,在网络管理软件及网络通信协议下,实现资源共享和信息传递的虚拟平台。

IP地址
-
IP地址是分配给网络设备上网使用的数字标签,用于标识网络中唯一的一台设备

-
IP地址的作用:通过IP地址找到网络中唯一一台设备,然后可以跟这个设备进行数据通信。

-
IP地址分为IPv4和IPv6两个版本。
- IPv4(Internet Protocol version 4):
-
格式: IPv4地址由32位二进制数组成,通常以点分十进制的形式表示,如192.168.0.1。
-
分段: IPv4地址分为网络地址和主机地址两部分。不同类别的网络使用不同数量的位来表示网络和主机。常见的有A类、B类和C类地址。
- A类地址:8位网络地址 + 24位主机地址
- B类地址:16位网络地址 + 16位主机地址
- C类地址:24位网络地址 + 8位主机地址
-
私有地址: 一些地址范围被保留作为私有地址,用于局域网内部。
- 例如,A类的10.0.0.0到10.255.255.255,B类的172.16.0.0到172.31.255.255,和C类的192.168.0.0到192.168.255.255。
- IPv6(Internet Protocol version 6):
-
格式: IPv6采用128位地址,通常用8组四位十六进制数表示
- 例如:2001:0db8:85a3:0000:0000:8a2e:0370:7334。
-
扩展性: 由于IPv4地址空间有限,IPv6被设计为更大、更灵活的地址空间,以满足未来互联网发展的需求。
-
特殊表示: IPv6地址中可以使用"::"表示连续的零字段,以简化地址。例如,2001:0db8:0:0:0:0:0:1可以简写为2001:db8::1。
-
IP地址分配: IPv6地址分配通常通过IPv6路由器自动进行,也可以使用DHCPv6协议。
-
ifconfig和ping命令
| 命令名 | 说明 |
|---|---|
| ifconfig | 查看网卡信息 |
| ping | 检查网络是否正常 |
ifconfig (Interface Configuration)
- ifconfig 命令用于查看和配置网络接口的信息,包括IP地址、子网掩码、广播地址、MAC地址等。
-
查看所有网络接口的信息:
ifconfig -
查看特定网络接口的信息(例如,eth0):
ifconfig eth0 -
启用/禁用网络接口:
sudo ifconfig eth0 up # 启用 sudo ifconfig eth0 down # 禁用 -
配置IP地址:
sudo ifconfig eth0 192.168.1.2 netmask 255.255.255.0

- 127.0.0.1表示本机地址,提示:如果和自己的电脑通信就可以使用该地址。
- 127.0.0.1该地址对应的域名是localhost,域名是ip地址的别名,通过域名能解析出一个对应的ip地址。
ping
- ping 命令用于测试与目标主机的网络连接,并且能够测量往返时间(Round-Trip Time,RTT)。它通过发送ICMP(Internet Control Message Protocol)回显请求(Echo Request)消息到目标主机,并等待回显回应(Echo Reply)。
常用用法:
- 简单的ping测试:
ping baidu.com
- 指定ping的次数:
ping -c 5 baidu.com # 发送5个ICMP请求
-
持续ping:
ping -t baidu.com # 持续ping,直到手动停止 -
使用特定的数据包大小:
ping -s 1000 baidu.com # 发送数据包大小为1000字节的ICMP请求

端口和端口号的介绍
-
每运行一个程序都会有一个端口,想要给对应的程序发送数据,找到对应的端口即可。

-
端口是传输数据的通道,好比教室的门,是数据传输必经之路。
-
每一个端口都会有一个对应的端口号,想要找到端口通过端口号即可。

-
端口号(65536个):端口号是用来管理区分不同端口的一个号码。好比生活中的门牌号。
-
最终通信流程,通过ip地址找到对应的设备,通过端口号找到对应的端口,然后通过端口把数据给应用程序。

端口号的分类
- 端口号按照一定的规定可以分为:
- 知名端口号
- 动态端口号
- 知名端口号是指众所周知的端口号,范围从0到1023,这些端口号一般固定分配给一些服务,比如21端口分配给FTP(文件传输协议)服务,25端口分配给SMTP(简单邮件传输协议)服务,80端口分配给HTTP服务。
- 动态端口号:一般程序员开发应用程序使用端口号
- 动态端口号的范围是从1024到65535,如果程序员开发的程序没有设置端口号,操作系统会在动态端口号这个范围内随机生成一个给开发的应用程序使用。
- 当运行一个程序默认会有一个端口号,当这个程序退出时,所占用的这个端口号就会被释放。
socket介绍
-
Socket是一种网络通信协议,它在应用层和传输层之间提供了一个接口,使得应用程序可以通过网络与其他应用程序进行通信。
-
Socket可以用于不同的网络协议,如TCP、UDP等。
-
在Socket通信中,有两个主要的角色:服务器和客户端。一旦连接建立成功,服务器和客户端之间就可以进行双向通信。
- 服务器在网络上监听一个端口,等待客户端的连接请求。
- 客户端则通过指定服务器的IP地址和端口号来连接服务器。
-
Socket通信可以用于许多应用场景,如网络游戏、实时通信、文件传输等。它是构建网络应用程序的重要基础。

TCP
TCP简介
- 通过IP地址能够找到对应的设备,然后再通过端口号找到对应的端口,再通过端口把数据传输给应用程序,在发送之前要选择网络传输方式(传输协议),保证程序之间按照指定的传输规则进行数据的通信。

- TCP的英文全拼(Transmission Control Protocol)简称传输控制协议,它是一种面向连接的、可靠的、基于字节流的传输层通信协议。
- TCP(Transmission Control Protocol)运行在传输层(Transport Layer)。传输层是OSI参考模型中的第四层,它负责在网络中传输数据,为应用层提供可靠的数据传输服务。

- TCP通信步骤:
- 创建连接
- 传输数据
- 关闭连接
- TCP通信模型相当于生活中的’打电话‘,在通信开始之前,一定要先建立好连接,才能发送数据,通信结束要关闭连接。

- TCP通过三次握手建立连接,通过四次挥手关闭连接,保证了数据传输的可靠性和完整性。
TCP的特点
- 面向连接
- 通信双方必须先建立好连接才能进行数据的传输,并且双方都会为此连接分配必要资源用来记录连接的状态和信息。当数据传输完成后,双方必须断开此连接,以释放系统资源。
- 可靠传输
- TCP采用发送应答机制
- 通过TCP这种方式发送的每个报文段都必须得到接收方的应答才认为这个TCP报文段传送成功
- 超时重传
- 发送端发送一个报文之后就会启动定时器,如果指定时间内没有得到应答就会重新发送这个报文段
- 错误校验
TCP用一个校验和函数来校验数据是否有错误,在发送和接收时都要计算校验和 - 流量控制和阻塞管理
- 流量控制用来避免发送端发送过快而使得接收方来不及接收
UDP
UDP简介
-
UDP(User Datagram Protocol)是一种无连接的网络传输协议,它是在传输层上运行的。UDP不像TCP那样提供可靠的数据传输。UDP发送的数据包不需要建立连接,也不需要等待确认,因此UDP传输速度比TCP快,但是可靠性较差。
-
UDP主要用于那些对数据传输速度要求高,但对数据传输可靠性要求不高的应用,如实时音视频传输、网络广播、在线游戏等。由于UDP的传输速度较快,因此在一些对实时性要求较高的应用场景中,UDP比TCP更加适合。
-
UDP的数据包结构比TCP简单,只包含源端口、目的端口、长度和校验和等基本信息。由于UDP没有连接的概念,因此每个UDP数据包都是独立的,可以随时发送和接收。
UDP特点
UDP(User Datagram Protocol)的特点如下:
-
无连接:UDP在发送数据之前不需要建立连接,也不需要维护连接状态,因此传输效率较高。
-
不可靠:UDP不提供可靠的数据传输,数据包可能会丢失、重复或乱序。因此,在实时性要求较高的应用场景中,如音视频传输、实时游戏等,UDP更加适合。
-
简单:UDP的数据包结构比TCP简单,只包含源端口、目的端口、长度和校验和等基本信息。
-
快速:由于UDP没有连接的概念,数据包的传输效率较高,适用于数据传输速度要求较高的应用场景。
-
支持广播和多播:UDP支持广播和多播,可以将数据包发送给多个接收方。
-
适用于短消息传输:由于UDP数据包的大小限制较小,适用于短消息的传输,如DNS查询、SNMP等。
相关文章:
python网络通信之基础知识填坑
文章目录 版权声明网络通信要素IP地址ifconfig和ping命令ifconfig (Interface Configuration)ping 端口和端口号的介绍端口号的分类socket介绍TCPTCP简介TCP的特点 UDPUDP简介UDP特点 版权声明 本博客的内容基于我个人学习黑马程序员课程的学习笔记整理而成。我特此声明&#…...
【腾讯云云上实验室-向量数据库】腾讯云开创新时代,发布全新向量数据库Tencent Cloud VectorDB
前言 随着人工智能、数据挖掘等技术的飞速发展,海量数据的存储和分析越来越成为重要的研究方向。在海量数据中找到具有相似性或相关性的数据对于实现精准推荐、搜索等应用至关重要。传统关系型数据库存在一些缺陷,例如存储效率低、查询耗时长等问题&…...
【图像分类】【深度学习】【Pytorch版本】GoogLeNet(InceptionV4)模型算法详解
【图像分类】【深度学习】【Pytorch版本】GoogLeNet(InceptionV4)模型算法详解 文章目录 【图像分类】【深度学习】【Pytorch版本】GoogLeNet(InceptionV4)模型算法详解前言GoogLeNet(InceptionV4)讲解Stem结构Inception-A结构Inception- B结构Inception-C结构Redution-A结构Re…...
opencv dots_image_kernel
1,opencv dots_image_kernel // halcon dots_image kernel估算(d5) cv::Mat getDotKernel(int d 5){// 保证d为正的奇数d | 0x01;cv::Mat kernel cv::Mat::zeros(d 2, d 2, CV_8UC1);int cx kernel.cols / 2;int cy kernel.rows / 2;int cnt255 0, cnt128 …...
使用pytorch利用神经网络原理进行图片的训练(持续学习中....)
1.做这件事的目的 语言只是工具,使用python训练图片数据,最终会得到.pth的训练文件,java有使用这个文件进行图片识别的工具,顺便整合,我觉得Neo4J正确率太低了,草莓都能识别成为苹果,而且速度慢,不能持续识别视频帧 2.什么是神经网络?(其实就是数学的排列组合最终得到统计结果…...
2023年中国合成云母行业现状及市场格局分析[图]
合成云母是一种通过化工原料经高温熔融冷却析晶而制得的单斜晶系矿物,属于典型的层状硅酸盐,许多性能都优于天然云母,如合成云母的耐温高达1200℃以上,而天然白云母在550℃下就会开始分解,金云母则在800℃开始分解。除…...
Vue3+Vite实现工程化,插值表达式和v-text以及v-html
1、插值表达式 插值表达式最基本的数据绑定形式是文本插值,它使用的是"Mustache"语法,即 双大括号{{}} 插值表达式是将数据 渲染 到元素的指定位置的手段之一插值表达式 不绝对依赖标签,其位置相对自由插值表达式中支持javascript的…...
艾泊宇产品战略:灵感于鬼屋,掌握打造卓越用户体验的关键要素
在当今的商业环境中,用户体验已经成为产品成功的关键因素。 无论是线上产品还是实体产品,用户体验都是决定用户是否愿意使用和推荐该产品的关键因素。 那么,艾泊宇产品战略理论告诉大家,如何做好用户体验? 我们可以…...
深度学习环境配置(Anaconda+pytorch+pycharm+cuda)
NVIDIA驱动安装 首先查看电脑的显卡版本,步骤为:此电脑右击-->管理-->设备管理器-->显示适配器。就可以看到电脑显卡的版本了。 然后按照电脑信息,到地址 去安装相应的驱动,Notebooks是笔记本的意思,然后下…...
不是说人工智能是风口吗,那为什么工作还那么难找?
最近确实有很多媒体、机构渲染人工智能可以拿高薪,这在行业内也是事实,但前提是你有足够的竞争力,真的懂人工智能。 首先,人工智能岗位技能要求高,人工智能是一个涵盖了多个学科领域的综合性学科,包括数学、…...
new Vue() 发生了什么
前言: 在Vue.js中,当你创建一个新的Vue实例时,通过 new Vue() 发生了一系列重要的操作,包括Vue实例的初始化、数据绑定、模板编译等。这个过程是Vue应用的核心,本文将深入探讨new Vue()发生了什么以及其原理,提供示例…...
【算法】二叉树的存储与遍历模板
二叉树的存储与遍历 const int N 1e6 10;// 二叉树的存储,l数组为左节点,r数组为右结点 int l[N], r[N]; // 存储节点的数据 char w[N]; // 节点的下标指针 int idx 0;// 先序创建 int pre_create(int n) {cin >> w[n];if (w[n] #) return -1;l[n] pre_create(idx)…...
【Go学习之 go mod】gomod小白入门,在github上发布自己的项目(项目初始化、项目发布、项目版本升级等)
参考 Go语言基础之包 | 李文周的博客Go mod的使用、发布、升级 | weiGo Module如何发布v2及以上版本1.2.7. go mod命令 — 新溪-gordon V1.7.9 文档golang go 包管理工具 go mod的详细介绍-腾讯云开发者社区-腾讯云Go Mod 常见错误的原因 | walker的博客 项目案例 oceanweav…...
79基于matlab的大米粒中杂质识别
基于matlab的大米粒中杂质识别,数据可更换自己的,程序已调通,可直接运行。 79matlab图像处理杂质识别 (xiaohongshu.com)...
Vue 项目实战——如何在页面中展示 PDF 文件以及 PDFObject 插件实战
文章目录 📋前言🎯使用 HTML 标签🧩 embed 标签🧩 object标签🧩 iframe标签🧩完整代码 🎯使用 PDFObject 插件🧩为什么使用 PDFObject 插件(AI翻译)…...
系列六、ThreadLocal内存泄露案例
一、ThreadLocal内存泄露案例 /*** Author : 一叶浮萍归大海* Date: 2023/11/22 10:56* Description: 写一段代码导致内存泄露* VM Options:-Xms20m -Xmx20m -Xmn10m -XX:PrintGCDetails* 说明:内存泄露最终会导致内存溢出*/ public class ThreadLocalO…...
Java学习笔记44——Stream流
Stream流 体验Stream流Stream流的生成方式ColLection体系的集合可以使用默认方法stream ()生成流Map体系的集合间接的生成流数组可以通过stream接口的静态方法of (T... values)生成流 Stream流的中间操作方法Stream<T> filter(Predicate predicate)Stream<T>limit(…...
excel表格忘记密码,如何找回?
找回和去除Excel表格密码的方法非常简单。具体步骤如下:第一步百度搜索【 密码帝官网 】,第二步点击“立即开始”在用户中心上传文件即可。这个方法既安全又简单,不需要下载任何软件,而且可以在手机和电脑上都使用。密码帝官网支持…...
IDEA版SSM入门到实战(Maven+MyBatis+Spring+SpringMVC) -Mybatis初识和框架搭建
第一章 初识Mybatis 1.1 框架概述 生活中“框架” 买房子笔记本电脑 程序中框架【代码半成品】 Mybatis框架:持久化层框架【dao层】SpringMVC框架:控制层框架【Servlet层】Spring框架:全能… 1.2 Mybatis简介 Mybatis是一个半自动化持久化…...
差分放大器工作原理(差分放大器和功率放大器区别)
差分放大器是一种特殊的放大器,它可以将两个输入信号的差异放大输出。其工作原理基于差分放大器的电路结构和差分输入特性。 一、差分放大器电路结构 差分放大器一般由四个基本电路组成:正反馈网络、反相输入端、共模抑制电路和差分输入端。其中…...
从“AI向善”到“AI合规”:2026奇点大会定义AISMM-ESG耦合度公式(α=0.63β+γ²),你的企业达标了吗?
更多请点击: https://intelliparadigm.com 第一章:从“AI向善”到“AI合规”:范式跃迁的底层逻辑 “AI向善”曾以伦理倡议与行业自律为基石,强调技术的人本温度;而“AI合规”则标志着治理重心向可验证、可审计、可追责…...
将 Claude Code 编程助手无缝对接至 Taotoken 平台以享受官方价折扣
将 Claude Code 编程助手无缝对接至 Taotoken 平台以享受官方价折扣 对于经常使用 Claude Code 作为编程助手的开发者而言,直接使用官方服务有时会面临成本与灵活性的考量。Taotoken 平台提供了 OpenAI 兼容的 HTTP API,同时也支持 Anthropic 兼容的通道…...
深入AURIX EVADC:如何用同步转换和公共服务请求实现高精度时间戳采集?
深入AURIX EVADC:高精度时间戳采集的同步转换与公共服务请求实战 在工业电机控制、新能源电池管理系统等对时序要求严苛的场景中,毫秒级的延迟都可能导致系统性能下降甚至故障。AURIX TC3XX系列的EVADC模块通过其独特的同步转换机制和公共服务请求功能&a…...
谷歌云推出欺诈防御:reCAPTCHA 全新进化,保障智能网络安全与业务增长
安全与身份认证:谷歌云欺诈防御——reCAPTCHA 的全新进化2026 年 4 月 23 日,谷歌云在 Next ‘26 大会上推出了谷歌云欺诈防御,这是一款适用于智能网络的信任平台,也是 reCAPTCHA 的全新进化。智能网络带来的挑战与应对智能网络借…...
观察在虚拟机中调用Taotoken聚合API的延迟与稳定性表现
观察在虚拟机中调用Taotoken聚合API的延迟与稳定性表现 1. 测试环境与目的说明 本次测试旨在分享在个人本地虚拟机网络环境下,通过标准HTTP请求调用Taotoken聚合API的直观体验。测试环境为一台配置中等的本地虚拟机,运行常见的Linux发行版,…...
全栈时空基座自主可控 · 全域镜像孪生安全可信
1. 总体定位镜像视界构建全栈国产化时空统一数字基座,以自主空间操作系统为底层核心,统一全域时空基准、打通跨域异构数据壁垒、消解多系统数据孤岛,构建与物理世界高精度同构、高实时同步、高安全可信的全域镜像孪生体系。全面实现底层技术自…...
AISMM国际标准化“黑箱”拆解:SITS2026专家首度披露标准制定背后的12家头部AI厂商博弈细节与技术妥协点
更多请点击: https://intelliparadigm.com 第一章:SITS2026专家:AISMM国际标准化 AISMM(Artificial Intelligence System Maturity Model)是由SITS2026专家组主导推动的国际人工智能系统成熟度评估框架,已…...
如何用GIMP Resynthesizer实现智能图像修复:终极纹理合成指南
如何用GIMP Resynthesizer实现智能图像修复:终极纹理合成指南 【免费下载链接】resynthesizer Suite of gimp plugins for texture synthesis 项目地址: https://gitcode.com/gh_mirrors/re/resynthesizer 你是否曾想过,能否像魔术师一样从照片中…...
python基础知识——操作文件
6.类项目案例:实现快递机器人任务:实现帮助用户寄件和取件项目任务:模拟填单和取件时获取单号的功能项目实现代码:class Robot():#创建一个名为Robot的类def __init__(self):#定义了__init__()初始化方法,在初始化方法…...
BepInEx游戏插件框架:10分钟掌握Unity游戏模组开发神器
BepInEx游戏插件框架:10分钟掌握Unity游戏模组开发神器 【免费下载链接】BepInEx Unity / XNA game patcher and plugin framework 项目地址: https://gitcode.com/GitHub_Trending/be/BepInEx BepInEx游戏插件框架是Unity游戏模组开发的终极解决方案&#x…...
