网络编程基础
1 互联网的本质
硬件设备有了操作系统,然后装上软件之后我们就能够正常使用了,然后也只能自己使用。
像这样,每个人都拥有一台自己的机器,然而彼此孤立。
如何才能和大家一起愉快的玩耍?
什么是网络?
简单来说,网络就是一种辅助双方或者多方连接在一起的工具。
2 使用网络的目的
就是为了联通多方然后进行通信,即把数据从一方传递给另一方。
python开发基础阶段学习的编程都属于单机的,即不能和其他电脑的程序进行通信。
为了让在不同的电脑上运行的软件之间能够相互传输数据,就需要借助网络的功能。
3 TCP/IP协议(网络通信协议)
首先我们需要知道什么是协议?
可以理解为一个规定,就像我们之前所说的国际通用的语言为英语。
那么类比到计算机领域,计算机网络沟通语言是什么?
计算机都遵循的网络通信协议就叫做TCP/IP协议。
历史:
早期的计算机网络,各计算机厂商各自规定一套协议,比如IBM、Apple等都有各自的网络通信协议,互不兼容,谁也不服谁,导致只有相同品牌的计算机才能够进行通信交流。
为了把世界上所有不同类型的计算机都连接起来,就必须规定一套全球通用的网络通信协议。
为了实现互联网这个目标,互联网协议簇就随之发展而成,互联网协议簇就是通用协议标准。
因为互联网协议包含了很多种协议标准,并不仅仅只是TCP和IP协议,只是这两个相对来说非常重要,所以互联网通信协议也就简称TCP/IP协议。
4 Ip地址的介绍
IP 地址就是标识网络中设备的一个地址。通过IP地址能够找到网络中某台设备。
IP地址分为两类:IPv4和IPv6
IPv4 是目前使用的IP地址
IPv6 是未来使用的IP地址
IPv4 是由点分十进制组成
IPv6 是由冒号十六进制组成
查看IP地址
Linux 和 mac OS 使用ifconfig这个命令
Windows 使用ipconfig这个命令
通俗理解:
IP地址就好像电话号码(地址码):有了某人的电话号码,你就能与他通话了。同样,有了某台主机的IP地址,你就能与这台主机通信了,而且IP地址是唯一的。
IPv4地址的分类(每一个IP地址包括两部分:网络地址和主机地址)
A类地址
一个A类IP地址由1字节的网络地址的网络和3字节主机地址组成,网络地址的最高为必须是“0”
地址范围:1.0.0.1---126.255.255.254
可用的A类网络有126个,每个网络能容纳1677214个主机
B类地址
一个B类地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是“10”
地址范围:128.1.0.1---191.255.255.254
可用的B类网络有16384个,每个网络能容纳65534主机
C类地址
一个C类IP地址由3字节的网络地址和1 个字节的主机地址组成,网络地址的最高位必须是“110”
地址范围:192.0.1.1---223.255.255.254
C类网络可达2097152个,每个网络能容纳254个主机
D类地址
D类IP地址第一个字节以“1110”开始,它是一个专门保留的地址。
它并不指向特定的网络,目前这一类地址被用在多点广播中
多点广播地址用来一次寻址一组计算机
E类地址
以“1111”开始,为将来使用保留(仅在实验室和开发用)
注意
IP地址127.0.0.1---127.255.255.255用于回路测试
如:127.0.0.1可以代表本机IP地址,用http://127.0.0.1就可以测试本机中配置的web服务器。
5 端口和端口号的介绍
端口
端口的作用就是给运行的应用程序提供传输数据的通道。
端口号
操作系统为了统一管理这么多端口,就对端口进行了编号,这就是端口号,端口号其实就是一个数字,好比我们现实生活中的门牌号。
应用程序进行数据通信的流程
首先通过IP地址找到对应的设备
然后通过端口号找到对应的端口
然后通过端口把数据传输给应用程序
端口号的分类
知名端口(0 - 1023)
众所周知的端口号。
这些端口固定分配给一些服务,比如21端口分配给FTP(文件传输协议)服务,25端口分配给SMTP(简单邮件传输协议)服务,80端口分配给HTTP服务。
动态端口(1024 - 65535)
一般程序员开发应用程序使用的端口号称为动态端口号。
当运行一个程序默认会有一个端口号,当这个程序退出时,所占用的这个端口号就会被释放。
6 什么是Socket
Socket(简称套接字)是进程间通信的一种方式。
它能实现不同主机间的进程通信,我们网络上各种各样的服务大多是基于Socket来完成通信的。
例如我们每天浏览网页、QQ聊天、收发email等等。
6.1 创建socket
python中使用socket模块的函数socket就可以完成。
该函数带有两个参数:
adderss family:可以选择AF_INET(用于internet进程间通信)或者AF_UNIX(用于同一台机器进程间通信)
Type:套接字类型,可以是SOCK_STREAM(流式套接字,主要用于TCP协议)或者SOCK_DGRAM(数据报套接字,主要用于UDP协议)
创建一个udp socket(udp套接字)
import sockets = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
创建一个tcp socket(tcp套接字)
import sockets = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
6.2 udp介绍
udp是一种面向无连接的协议,每个数据报都是一个独立的信息,包括完整的源地址或和目的地址,它在网络上以任何可能的路径传往目的地,因此能否到达目的地,到达目的地的时间以及内容的正确性都是不能被保证的。
特点
无需建立链接,数据到达后也无需确认
不可靠交付
适用场景
通常用于可靠性较高的网络环境(局域网)或不要求可靠传输的场合
也常用于客户机/服务器模式中。
举例
网络游戏
直播
音视频传输
6.3 tcp 介绍
tcp是一种面向连接的、可靠的、基于字节流的通讯协议。
特点
面向连接,提供了可靠的建立连接和拆除连接的方法
可靠交付
适用场景
TCP常用于不可靠的互联网中为应用程序提供面向连接的,可靠的,端到端字节流服务。
举例
远程控制
邮件
点对点文件传输
相关文章:
网络编程基础
1 互联网的本质硬件设备有了操作系统,然后装上软件之后我们就能够正常使用了,然后也只能自己使用。像这样,每个人都拥有一台自己的机器,然而彼此孤立。如何才能和大家一起愉快的玩耍?什么是网络?简单来说&a…...
华为OD机试题 - 数列还原(JavaScript)| 机考必刷
更多题库,搜索引擎搜 梦想橡皮擦华为OD 👑👑👑 更多华为OD题库,搜 梦想橡皮擦 华为OD 👑👑👑 更多华为机考题库,搜 梦想橡皮擦华为OD 👑👑👑 华为OD机试题 最近更新的博客使用说明本篇题解:数列还原题目输入输出示例一输入输出Code代码解析版权说明华为O…...
10-Oracle存储过程(创建,修改,使用及管理)
本章内容 1、我们为什么要用存储过程? 2、存储过程是如何定义和维护的? 3、我们如何调用存储过程? 4、存储过程中常用的复合数据处理方式及CTE 5、存储过程如何进行异常处理? 6、存储过程如何进行事务处理? 7、我们应如何优化存储过程? 1、我们为什么要用存储过程…...
创建线程的三种方法
文章目录1、创建一个类实现Runnable接口,并重写run方法。2、创建一个类继承Thread类,并重写run方法。3、实现Callable接口,重写call()方法,这种方式可以通过FutureTask获取任务执行的返回值。4、run()方法和start()方法有什么区别…...
第一章---Pytorch快速入门---第三节---pytorch中的数据操作和预处理
目录 1.高维数组 1.1 回归数据准备 1.2 分类数据准备 2. 图像数据 1.torchvision.datasets模块导入数据并预处理 2.从文件夹中导入数据并进行预处理 pytorch中torch.utils.data模块包含着一些常用的数据预处理的操作,主要用于数据的读取、切分、准备等。 常用…...
【代码随想录训练营】【Day38】第九章|动态规划|理论基础|509. 斐波那契数|70. 爬楼梯|746. 使用最小花费爬楼梯
理论基础 动态规划与贪心的区别并不是学习动态规划所必须了解的,所以并不重要。 想要了解动态规划算法题的特点,可以直接做下面三道入门简单题练练手感,找找感觉,很快就能体会到动态规划的解题思想。 总结成一句话就是…...
华为OD机试题 - 快递货车(JavaScript)| 机考必刷
更多题库,搜索引擎搜 梦想橡皮擦华为OD 👑👑👑 更多华为OD题库,搜 梦想橡皮擦 华为OD 👑👑👑 更多华为机考题库,搜 梦想橡皮擦华为OD 👑👑👑 华为OD机试题 最近更新的博客使用说明本篇题解:快递货车题目输入输出示例一输入输出Code解题思路版权说明华为O…...
前端——7.图像标签和路径
这篇文章,我们来讲解一下图像标签 目录 1.图像标签 1.1介绍 1.2实际展示 1.3图像标签的属性 1.3.1 alt属性 1.3.2 title属性 1.3.3 width / height 属性 1.3.4 border属性 1.4注意事项 2.文件夹 2.1目录文件夹和根目录 2.2 VSCode打开目录文件夹 3.路…...
java -- stream流
写在前面: stream流一直在使用,但是感觉还不够精通,现在深入研究一下。 stream这个章节中,会用到 函数式接口–lambda表达式–方法引用的相关知识 介绍 是jdk8引进的新特性。 stream流是类似一条流水线一样的操作,每次对数据进…...
【Spring6】| Bean的四种获取方式(实例化)
目录 一:Bean的实例化方式 1. 通过构造方法实例化 2. 通过简单工厂模式实例化 3. 通过factory-bean实例化 4. 通过FactoryBean接口实例化 5. BeanFactory和FactoryBean的区别(面试题) 6. 使用FactoryBean注入自定义Date 一:…...
01: 新手学SpringCloud前需知道的5点
目录 第一点: 什么是微服务架构 第二点:为什么需要学习Spring Cloud 第三点: Spring Cloud 是什么 第四点: SpringCloud的优缺点 1、SpringCloud优点 2、SpringCloud缺点 第五点: SpringCloud由什么组成 1&…...
ubuntu apt安装arm交叉编译工具
查找查找编译目标为32位的gcc-arm交叉编译器命令apt-cache search arm|awk index($1,"arm")!0 {print}|grep gcc-arm\|g-arm #或者 apt-cache search arm|awk index($1,"arm")!0 {print}|grep -E gcc-arm|g\\-arm输出如下g-arm-linux-gnueabihf - GNU C co…...
阿里云一面经历
文章目录 ES 查询方式都有哪些?1 基于词项的查询term & terms 查询Fuzzy QueryWildcard Query2 基于全文的查询Match QueryQuery String QueryMatch Phrase Query3 复合查询Bool QueryElasticsearch 删除原理ES 大文章怎么存arthas 常用命令arthas 排查问题过程arthas 工作…...
Java Stream中 用List集合统计 求和 最大值 最小值 平均值
对集合数据的统计,是开发中常用的功能,掌握好Java Stream提供的方法,避免自己写代码统计,可以提高工作效率。 先造点数据: pigs.add(new Pig(1, "猪爸爸", 31, "M", false)); pigs.add(new Pig(…...
【Linux】多线程---线程控制
进程在前面已经讲过了,所以这次我们来讨论一下多线程。前言:线程的背景进程是Linux中资源及事物管理的基本单位,是系统进行资源分配和调度的一个独立单位。但是实现进程间通信需要借助操作系统中专门的通信机制,但是只这些机制将占…...
秒杀高并发解决方案
秒杀高并发解决方案 1.秒杀/高并发方案-介绍 秒杀/高并发 其实主要解决两个问题,一个是并发读,一个是并发写并发读的核心优化理念是尽量减少用户到 DB 来"读"数据,或者让他们读更少的数据, 并 发写的处理原则也一样针对秒杀系统需…...
【每日一题】蓝桥杯加练 | Day07
文章目录一、三角回文数1、问题描述2、解题思路3、AC代码一、三角回文数 原题链接:三角回文数 1、问题描述 对于正整数 n, 如果存在正整数 k 使得n123⋯k k(k1)2\frac{k(k1)}{2}2k(k1) , 则 n 称为三角数。例如, 66066 是一个三角数, 因为 66066123⋯363 。 如果一…...
条件语句(分支语句)——“Python”
各位CSDN的uu们你们好呀,最近总是感觉特别特别忙,但是却又不知道到底干了些什么,好像啥也没有做,还忙得莫名其妙,言归正传,今天,小雅兰的内容还是Python呀,介绍一些顺序结构的知识点…...
论文投稿指南——中文核心期刊推荐(国家财政)
【前言】 🚀 想发论文怎么办?手把手教你论文如何投稿!那么,首先要搞懂投稿目标——论文期刊 🎄 在期刊论文的分布中,存在一种普遍现象:即对于某一特定的学科或专业来说,少数期刊所含…...
面向数据安全共享的联邦学习研究综述
开放隐私计算 摘 要:跨部门、跨地域、跨系统间的数据共享是充分发挥分布式数据价值的有效途径,但是现阶段日益严峻的数据安全威胁和严格的法律法规对数据共享造成了诸多挑战。联邦学习可以联合多个用户在不传输本地数据的情况下协同训练机器学习模型&am…...
Redis经典五种数据类型底层实现原理解析
目录总纲redis的k,v键值对新的三大类型五种经典数据类型redisObject结构图示结构讲解数据类型与数据结构关系图示string数据类型三大编码格式SDS详解代码结构为什么要重新设计源码解析三大编码格式hash数据类型ziplist和hashtable编码格式ziplist详解结构剖析ziplist的优势(为什…...
Jackson 返回前端的 Response结果字段大小问题
目录 1、问题产生的背景 2、出现的现象 3、解决方案 4、成果展现 5、总结 6、参考文章 1、问题产生的背景 因为本人最近工作相关的对接外部项目,在我们国内有很多程序员都是使用汉语拼音或者部分字母加上英文复合体定义返回实体VO,这样为了能够符合…...
每天五分钟机器学习:你理解贝叶斯公式吗?
本文重点 贝叶斯算法是机器学习算法中非常经典的算法,也是非常古老的一个算法,但是它至今仍然发挥着重大的作用,本节课程及其以后的专栏将会对贝叶斯算法来做一个简单的介绍。 贝叶斯公式 贝叶斯公式是由联合概率推导而来 其中p(Y|X)称为后验概率,P(Y)称为先验概率…...
C++的入门
C的关键字 C总计63个关键字,C语言32个关键字 命名空间 我们C的就是建立在C语言之上,但是是高于C语言的,将C语言的不足都弥补上了,而命名空间就是为了弥补C语言的不足。 看一下这个例子。在C语言中会报错 #include<stdio.h>…...
数据的存储
类型的意义:使用这个类型开辟内存空间的大小(大小决定了使用范围)如何看待内存空间视角类型的基本归类整型家族浮点数家族构造类型指针类型空类型整型存储解构:整型在计算机中占用四个字节,整型分为无符号整型和有符号整型在计算机…...
Linux查看UTC时间
先了解一下几个时间概念。 GMT时间:Greenwich Mean Time,格林尼治平时,又称格林尼治平均时间或格林尼治标准时间。是指位于英国伦敦郊区的皇家格林尼治天文台的标准时间。 GMT时间存在较大误差,因此不再被作为标准时间使用。现在…...
SpringBoot修改启动图标(详细步骤)
目录 一、介绍 二、操作步骤 三、介绍Java学习(题外话) 四、关于基础知识 一、介绍 修改图标就是在资源加载目录(resources)下放一个banner.txt文件。这样运行加载的时候就会扫描到这个文件,然后启动的时候就会显…...
【每日一题Day143】面试题 17.05. 字母与数字 | 前缀和+哈希表
面试题 17.05. 字母与数字 给定一个放有字母和数字的数组,找到最长的子数组,且包含的字母和数字的个数相同。 返回该子数组,若存在多个最长子数组,返回左端点下标值最小的子数组。若不存在这样的数组,返回一个空数组。…...
Go 内置运算符 if for switch
算数运算符fmt.Println("103", 103) //103 13 fmt.Println("10-3", 10-3) //10-3 7 fmt.Println("10*3", 10*3) //10*3 30 //除法注意:如果运算的数都是整数,那么除后,去掉小数部分,保留整数部分 f…...
C语言指针数组实际应用(嵌入式)
C语言指针数组详细学习 指针是C语言中非常重要的概念之一,它可以让我们直接访问内存中的数据。指针数组则是由多个指针组成的数组,每个指针都可以指向内存中的某个位置。以下是一些指针数组的实际代码应用: 字符串数组 char* names[] {&q…...
html5网站是用什么软件做的/地推一手项目平台
shared_ptr:资源管理利器 如果你还在使用传统的C,那么可以肯定堆内存的管理让你头痛过!在传统的C领域,堆内存管理上我们能借用的现成工具就只有auto_ptr。但是很不幸用auto_ptr管理堆内存简直就是个错误。auto_ptr的问题可以归结为…...
php动态网站开发案例课堂/seo标题关键词优化
场景:用js执行本地的安装软件,如果不存在就执行安装 操作步骤: 1.前台js代码 <script type"text/javascript"> function exec () { var command; var shell new ActiveXObject("WScript.Shell"); try{command shell.RegRead("HKEY_LOCAL_M…...
公司域名备案/神马seo教程
android系统,按住MENU键开机,会安全模式进入系统。代码位置:frameworks/policies/base/phone/com/android/internal/policy/impl/PhoneWindowManager.java收索SAFE MODE 这个tag会看到相关代码。步骤:在开机动画时,按住…...
南谯区城乡建设局网站/推广软文案例
今天我们来聊聊MySQL原理 基础篇主要是侧重基础知识,原理篇是有一定基础后的递进,通过学习本篇,不仅可以进一步了解MySQL的各项特性,还能为接下来的容灾调优打下坚实的基础。 现在,就让我们继续跟随阿柴进行这场沉浸式…...
php 爬取网站所有链接/站内优化主要从哪些方面进行
本文件包含一个风力发电机模型。 This file contains a wind turbine model. 该模型包括塔架、机舱和叶片的三维力学模型(用Simscape Multibody建模),液压变桨致动器,电偏航致动器,一个简单的发电机和电网模型。 It…...
免费的个人的网站/百度广告费
在与开发者长期的沟通中,我们发现,尽管声网为开发者提供了丰富翔实的 SDK 技术文档,但对于初次接触声网 SDK 的开发者来说,在第一眼看到文档的时候,可能会被大量新概念和复杂的 API 接口淹没。SDK 技术文档存在自身的自…...