[Python]网络编程基础(一)

简介: [Python]网络编程基础(一)

a2ecb23d66d04c118d28e62f78a37fde.png

前言

系列文章目录

[Python]目录

视频及资料和课件

链接:https://pan.baidu.com/s/1LCv_qyWslwB-MYw56fjbDg?pwd=1234

提取码:1234

IP 地址的介绍

1 IP 地址的概念

IP 地址就是标识网络中设备的一个地址,好比现实生活中的家庭地址。

网络中的设备效果图:

2 IP 地址的表现形式

说明:

(1)IP 地址分为两类: IPv4 和 IPv6

(2)IPv4 是目前使用的ip地址

(3)IPv6 是未来使用的ip地址(IPv6的提出是由于IPv4所能表示的地址个数将要不够用)

(4)IPv4 是由点分十进制组成

(5)IPv6 是由冒号十六进制组成(两个冒号之间没有内容表示四个0)

3 IP 地址的作用

IP 地址的作用是标识网络中唯一的一台设备的(IP地址用于区分网络中的不同设备),也就是说通过IP地址能够找到网络中某台设备(由于IP地址不会重复,唯一标识网络中的设备)。

IP地址作用效果图:

4 查看 IP 地址

Linux 和 mac OS 使用 ifconfig 这个命令

Windows 使用 ipconfig 这个命令

说明:

ifconfig 和 ipconfig 都是查看网卡信息的,网卡信息中包括这个设备对应的IP地址

Linux 和 mac OS 使用 ifconfig 这个命令:

说明:

(1)192.168.1.107是设备在网络中的IP地址

(2)127.0.0.1表示本机地址,提示:如果和自己的电脑通信就可以使用该地址。

(3)127.0.0.1该地址对应的域名是localhost,域名是 ip 地址的别名,通过域名能解析出一个对应的ip地址。

Windows 使用 ipconfig 这个命令:

5 检查网络是否正常

检查网络是否正常使用 ping 命令

检查网络是否正常效果图:

说明:

(1)ping www.baidu.com 可以通过是否可以ping通外网检查是否能上公网

(2)ping 当前局域网的ip地址 检查是否在同一个局域网内

(3)ping 127.0.0.1 检查本地网卡是否正常

端口和端口号的介绍

1 问题思考

不同电脑上的飞秋之间进行数据通信,它是如何保证把数据给飞秋而不是给其它软件呢?

  • 其实,每运行一个网络程序都会有一个端口,想要给对应的程序发送数据,找到对应的端口即可。

端口效果图:

2 什么是端口

端口的作用就是给运行的应用程序提供传输数据的通道。

端口是传输数据的通道,每台电脑相当于一栋教学楼,每个应用程序相当于一间教室,端口好比教室的门,是数据传输必经之路。

那么如何准确的找到对应的端口呢?

  • 其实,每一个端口都会有一个对应的端口号,好比每个教室的门都有一个门牌号,想要找到端口通过端口号即可。

端口号效果图:

3 什么是端口号

端口号的作用是用来区分和管理不同端口的,通过端口号能找到唯一个的一个端口。

操作系统为了统一管理这么多端口,就对端口进行了编号,这就是端口号,端口号其实就是一个数字,好比我们现实生活中的门牌号,

端口号有65536个

那么最终飞秋之间进行数据通信的流程是这样的,通过ip地址找到对应的设备,通过端口号找到对应的端口,然后通过端口把数据传输给应用程序。

例如,从一栋教学楼的某一间教室到另一栋教学楼的某间教室,需要先通过教学楼的位置地址找到另一栋教学楼的位置(通过ip地址找到对应的设备),然后通过教室的门牌号找到对应的教室(通过端口找到对应的应用程序),之后就可以进行通信。

最终通信流程效果图:

4 端口和端口号的关系

端口号可以标识唯一的一个端口

5 端口号的分类

  1. 知名端口号
  2. 动态端口号

5.1 知名端口号

知名端口号是指众所周知的端口号,范围从0到1023

我们一般不使用知名端口号,避免冲突。

这些端口号一般固定分配给一些服务,比如21端口分配给FTP(文件传输协议)服务,25端口分配给SMTP(简单邮件传输协议)服务,80端口分配给HTTP服务。

5.2 动态端口号

一般程序员开发应用程序使用端口号称为动态端口号, 范围是从1024到65535

如果程序员开发的程序没有设置端口号,操作系统会在动态端口号这个范围内随机生成一个给开发的应用程序使用。

当运行一个程序默认会有一个端口号,当这个程序退出时,所占用的这个端口号就会被释放。

TCP 的介绍

1. 网络应用程序之间的通信流程

通过IP地址找到对应的设备,然后再通过端口号找到对应的端口,再通过端口把数据传输给应用程序,这里要注意,数据不能随便发送,在发送之前还需要选择一个对应的传输协议,保证程序之间按照指定的传输规则进行数据的通信。

2. TCP 的概念

TCP的英文全拼(Transmission Control Protocol)简称传输控制协议,它是一种面向连接的、可靠的、基于字节流的传输层通信协议

面向连接的效果图:

2.1 TCP 通信步骤

  1. 创建连接(三次握手)
  2. 传输数据
  3. 关闭连接

说明:

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

三次握手:

就好比打电话,发起电话的人先说“我是XXX,准备和你建立连接发送数据”,接电话的人“你好,XXX,我现在可以和你建立连接接收数据”,发起电话的人“我准备发送数据了”,这时双方的连接建立完成,接下来就发送数据。


相关文章
|
3天前
|
数据采集 存储 JSON
Python网络爬虫教程概览
【6月更文挑战第21天】Python网络爬虫教程概览:安装requests和BeautifulSoup库抓取网页;使用HTTP GET请求获取HTML,解析标题;利用CSS选择器提取数据;处理异步内容可选Selenium;遵循爬虫策略,处理异常,尊重法律与网站规定。
8 1
|
1天前
|
机器学习/深度学习 人工智能 算法
海洋生物识别系统+图像识别+Python+人工智能课设+深度学习+卷积神经网络算法+TensorFlow
海洋生物识别系统。以Python作为主要编程语言,通过TensorFlow搭建ResNet50卷积神经网络算法,通过对22种常见的海洋生物('蛤蜊', '珊瑚', '螃蟹', '海豚', '鳗鱼', '水母', '龙虾', '海蛞蝓', '章鱼', '水獭', '企鹅', '河豚', '魔鬼鱼', '海胆', '海马', '海豹', '鲨鱼', '虾', '鱿鱼', '海星', '海龟', '鲸鱼')数据集进行训练,得到一个识别精度较高的模型文件,然后使用Django开发一个Web网页平台操作界面,实现用户上传一张海洋生物图片识别其名称。
21 7
海洋生物识别系统+图像识别+Python+人工智能课设+深度学习+卷积神经网络算法+TensorFlow
|
1天前
|
机器学习/深度学习 人工智能 算法
【昆虫识别系统】图像识别Python+卷积神经网络算法+人工智能+深度学习+机器学习+TensorFlow+ResNet50
昆虫识别系统,使用Python作为主要开发语言。通过TensorFlow搭建ResNet50卷积神经网络算法(CNN)模型。通过对10种常见的昆虫图片数据集('蜜蜂', '甲虫', '蝴蝶', '蝉', '蜻蜓', '蚱蜢', '蛾', '蝎子', '蜗牛', '蜘蛛')进行训练,得到一个识别精度较高的H5格式模型文件,然后使用Django搭建Web网页端可视化操作界面,实现用户上传一张昆虫图片识别其名称。
28 7
【昆虫识别系统】图像识别Python+卷积神经网络算法+人工智能+深度学习+机器学习+TensorFlow+ResNet50
|
2天前
|
机器学习/深度学习 人工智能 算法
【球类识别系统】图像识别Python+卷积神经网络算法+人工智能+深度学习+TensorFlow
球类识别系统,本系统使用Python作为主要编程语言,基于TensorFlow搭建ResNet50卷积神经网络算法模型,通过收集 '美式足球', '棒球', '篮球', '台球', '保龄球', '板球', '足球', '高尔夫球', '曲棍球', '冰球', '橄榄球', '羽毛球', '乒乓球', '网球', '排球'等15种常见的球类图像作为数据集,然后进行训练,最终得到一个识别精度较高的模型文件。再使用Django开发Web网页端可视化界面平台,实现用户上传一张球类图片识别其名称。
18 7
【球类识别系统】图像识别Python+卷积神经网络算法+人工智能+深度学习+TensorFlow
|
8天前
|
数据采集 存储 数据挖掘
Python网络爬虫实战:抓取并分析网页数据
使用Python的`requests`和`BeautifulSoup`,本文演示了一个简单的网络爬虫,抓取天气网站数据并进行分析。步骤包括发送HTTP请求获取HTML,解析HTML提取温度和湿度信息,以及计算平均温度。注意事项涉及遵守robots.txt、控制请求频率及处理动态内容。此基础爬虫展示了数据自动收集和初步分析的基础流程。【6月更文挑战第14天】
80 9
|
3天前
|
缓存 前端开发 API
了解python中几个主流的网络框架
【6月更文挑战第21天】探索Python Web几个流行框架,了解各框架特性以适应不同场景需求。
23 1
|
6天前
|
Python
【干货】Python下载网络小说
【干货】Python下载网络小说
11 2
|
6天前
|
XML 数据库 数据格式
Python网络数据抓取(9):XPath
Python网络数据抓取(9):XPath
17 0
|
10天前
|
数据采集 前端开发 Python
Python3网络开发实战读后感
Python3网络开发实战读后感
|
9天前
|
存储 JSON 算法
Python中的并发编程(4)多线程发送网络请求
Python中的并发编程(4)多线程发送网络请求