当前位置: 首页 > article >正文

Python入门教程 —— 网络编程

1.网络通信概念

简单来说,网络是用物理链路将各个孤立的工作站或主机相连在一起,组成数据链路,从而达到资源共享和通信的目的。

使用网络的目的,就是为了联通多方然后进行通信,即把数据从一方传递给另外一方。

前面的学习编写的程序都是单机的,即不能和其他电脑上的程序进行通信。为了让在不同的电脑上运行的软件,之间能够互相传递数据,就需要借助网络的功能。

  • 使用网络能够把多方链接在一起,然后可以进行数据传递
  • 所谓的网络编程就是,让在不同的电脑上的软件能够进行数据传递,即进程之间的通信

2.IP地址

ip地址

生活中的地址指的就是,找到某人或某机关或与其通信的指定地点。在网络编程中,如果一台主机想和另一台主机进行沟通和共享数据,首先要做的第一件事情就是要找到对方。在互联网通信中,我们使用IP地址来查询到各个主机。

ip地址:用来在网络中标记一台电脑,比如192.168.1.1;在本地局域网上是唯一的。

ip地址的分类

每一个IP地址包括两部分:网络地址和主机地址。IP地址通常由点分十进制(例如:192.168.1.1)的方式来表示,IP地址要和子网掩码(用来区分网络位和主机位)配合使用。

A类地址

一个A类IP地址由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”,

地址范围:1.0.0.1-126.255.255.254

子网掩码:255.0.0.0

二进制表示为:00000001 00000000 00000000 00000001 - 01111110 11111111 11111111 11111110

可用的A类网络有126个,每个网络能容纳1677214个主机。

B类地址

一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是“10”,

地址范围:128.1.0.1-191.255.255.254

子网掩码:255.255.0.0

二进制表示为:10000000 00000001 00000000 00000001 - 10111111 11111111 11111111 11111110

可用的B类网络有16384个,每个网络支持的最大主机数为256的2次方-2=65534台。

C类地址

一个C类IP地址由3字节的网络地址和1字节的主机地址组成,网络地址的最高位必须是“110”

范围:192.0.1.1-223.255.255.254

子网掩码:255.255.255.0

二进制表示为: 11000000 00000000 00000001 00000001 - 11011111 11111111 11111110 11111110

C类网络可达2097152个,每个网络支持的最大主机数为256-2=254台。

D类地址

D类IP地址第一个字节以“1110”开始,它是一个专门保留的地址,并不指向特定的网络,目前这一类地址被用在多点广播(Multicast)中。

E类地址

以“1111”开始,为将来使用保留,仅作实验和开发用。

私有地址

在这么多网络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. 每一个字节都为0的地址(“0.0.0.0”)对应于当前主机。
  2. IP地址中的每一个字节都为1的IP地址(“255.255.255.255”)是当前子网的广播地址。
  3. IP地址中凡是以“1111”开头的E类IP地址都保留用于将来和实验使用。
  4. IP地址中不能以十进制“127”作为开头,该类地址中数字127.0.0.1到127.255.255.255用于回路测试,如:127.0.0.1可以代表本机IP地址,用 http://127.0.0.1 就可以测试本机中配置的Web服务器
  5. 网络ID的第一个8位组也不能全置为“0”,全“0”表示本地网络。

3.网络通信方式

直接通信

说明
  1. 如果两台电脑之间通过网线连接是可以直接通信的,但是需要提前设置好ip地址以及网络掩码
  2. 并且ip地址需要控制在同一网段内,例如 一台为192.168.1.1另一台为192.168.1.2则可以进行通信

使用集线器通信

 

说明
  1. 当有多态电脑需要组成一个网时,那么可以通过集线器(Hub)将其链接在一起
  2. 一般情况下集线器的接口较少
  3. 集线器有个缺点ÿ

http://www.kler.cn/a/473559.html

相关文章:

  • python学习笔记—14—函数
  • 【博主推荐】 Microi吾码开源低代码平台,快速建站,提高开发效率
  • Mysql - 多表连接和连接类型
  • WebRTC 在视频联网平台中的应用:开启实时通信新篇章
  • IDEA 字符串拼接符号“+”位于下一行的前面,而不是当前行的末尾
  • [笔记] Jenkins 安装与配置全攻略:Ubuntu 从零开始搭建持续集成环境
  • 机器学习算法的分类
  • 8_TypeScript String --[深入浅出 TypeScript 测试]
  • Ubuntu网络连接问题(笔记本更换wifi后,虚拟机连不上网络)
  • 【漏洞分析】DDOS攻防分析
  • 【修改mysql支持远程访问】
  • openai swarm agent框架源码详解及应用案例实战
  • Python数据可视化-Pandas
  • docker+ffmpeg+nginx+rtmp 拉取摄像机视频
  • 运放输入偏置电流详解
  • 4 驱动开发
  • Day10——爬虫
  • 【江协STM32】9-4/5 USART串口数据包、串口收发HEX数据包串口收发文本数据包
  • micro-app vite4接入vite6 遇到的问题
  • 数据库管理系统
  • 利用Java爬虫获取1688商品详情:API返回值说明及代码示例
  • VsCode对Arduino的开发配置
  • 【深度学习】布匹寻边:抓边误差小于3px【附完整链接】
  • 从零用java实现 小红书 springboot vue uniapp (9)消息推送功能
  • 【Unity3D】导出Android项目以及Java混淆
  • 初学vue3心得