23.网络编程(一)

news2024/11/14 19:46:02

目录

一.网络编程

1.1 什么是网络编程

1.2 网络通信基本模式

1.3 网络通信三要素

1.4 IP地址

1.4.1 什么是IP地址

1.4.2 IP的常见分类

1.4.3 IP地址基本寻路

1.4.4 IP地址形式

1.4.5 IP常用命令(在命令提示符窗口中使用)

1.4.6 特殊IP地址

1.5 IP地址操作类-InetAddress

1.6 端口

1.6.1 什么是端口号

1.6.2 端口类型

1.6.3 注意事项

1.7 协议

1.7.1 什么是通信协议

1.7.2 网络通信协议的参考模型

1.7.3 传输层的二个常见协议

1.9 TCP协议

1.9.1 TCP协议特点

二.UDP通信

2.1 UDP协议的特点

2.2 UDP协议通信场景

2.2 UDP通信模型演示

2.3 DatagramSocket

2.4 DatagramPacket

2.5 案例

2.6 UDP的通信方式

2.6.1 单播

2.6.2 广播

2.6.3 组播

2.6.4 UDP如何实现广播

2.6.5 UDP如何实现组播


一.网络编程

1.1 什么是网络编程

网络编程可以让程序与网络上的其他设备中的程序进行数据交互。

1.2 网络通信基本模式

常见的通信模式有如下二种形式:
1.Client-Service(CS)
2.Browser/Service(BS)

1.3 网络通信三要素

1.IP地址:设备在网络中的地址,是唯一的标识。
2.端口:应用程序在设备中的唯一标识。
3.协议:数据在网络中传输的规则。常见的协议有TCP协议和UDP协议。

1.4 IP地址

1.4.1 什么是IP地址

IP全称互联网协议地址,是分配给上网设备的唯一标志。

1.4.2 IP的常见分类

IPv4和IPv6。
IPv4:32位(4个字节)。
IPv4分成4个整数,每个整数用十进制位表示, 数之间用点.分开。
IPv6:128位(16个字节),号称可以为地球每一粒沙子编号。
IPv6分成8个整数,每个整数用四个十六进制位表示, 数之间用冒号(:)分开。

1.4.3 IP地址基本寻路

1.4.4 IP地址形式

公网地址、和私有地址 ( 局域网使用 )
192.168. 开头的就是常见的局域网地址,范围即为 192.168.0.0--192.168.255.255 ,专门为组织机构内部使用

1.4.5 IP常用命令(在命令提示符窗口中使用)

ipconfig:查看本机IP地址。
ping IP地址(或域名):检查网络是否畅通。

1.4.6 特殊IP地址

127.0.0.1或者localhost,称为回送地址或本地回环地址,只会寻找当前所在本机。

1.5 IP地址操作类-InetAddress

此类表示Internet(IP)协议地址。
相关API:

1.6 端口

1.6.1 什么是端口号

标识正在计算机设备上运行的进程(程序),被规定为一个16位的二进制,范围是0—65535。

1.6.2 端口类型

周知端口:0—1023,被预先定义的知名应用占用。
注册端口:1024—49151.分配给用户进程或某些应用程序(如Tomcat占用8080,MySQL占用3306)。
动态端口:49152—65535,之所以称为动态端口,是因为它一般不固定分配某种进程,而是动态分配。

1.6.3 注意事项

我们自己开发的程序选择注册端口,且一个设备中不能出现二个程序的端口号一样,否则出错。

1.7 协议

1.7.1 什么是通信协议

连接和通信数据的规则被称为网络通信协议。

1.7.2 网络通信协议的参考模型

OSI 参考模型:世界互联协议标准,全球通信规范,由于此模型过于理想化,未能在因特网上进行广泛推广。
TCP/IP 参考模型 ( TCP/IP 协议 ) :事实上的国际标准。

1.7.3 传输层的二个常见协议

TCP(Transmission Control Protocol) :传输控制协议
UDP(User Datagram Protocol) :用户数据报协议

1.9 TCP协议

1.9.1 TCP协议特点

1. 使用TCP协议,必须双方先建立连接,他是一种面向连接的可靠通信协议。
2. 传输前,采用“三次握手”方式建立连接,所以是可靠的。
3. 再连接中可进行大数据量的传输。
4. 连接、发送数据都需要确认、且传输完毕后,还需释放已建立的连接,通信效率较低。

二.UDP通信

2.1 UDP协议的特点

1. UDP 是一种 无连接 不可靠传输 的协议。
2. 将数据源 IP 、目的地 IP 和端口封装成数据包,不需要建立连接
3. 每个数据包的大小限制在 64KB
4. 发送不管对方是否准备好,接收方收到也不确认,故是不可靠的
5. 可以广播发送 ,发送数据结束时无需释放资源,开销小,速度快。

2.2 UDP协议通信场景

语音通话,视频会话等。

2.2 UDP通信模型演示

2.3 DatagramSocket

DatagramSocket是用来创建发送端和接收端的对象(相当于上面模型中的人)
1.构造器
2.常用API

2.4 DatagramPacket

DatagramPacket:数据包对象(相当于韭菜盘子)
1.构造器
2.常用API

2.5 案例

1.使用UDP通信实现发送消息和接收消息
 第二个案例的简化版
2.使用UDP通信实现多发多收消息
客户端步骤:
创建 DatagramSocket 对象(发送端对象)                      扔韭菜的人
②使用 while 死循环不断的接收用户的数据输入,如果用户输入的 exit 则退出程序
③如果用户输入的不是 exit,  把数据封装成 DatagramPacket                      韭菜盘子
④使用 DatagramSocket 对象的 send 方法将数据包对象进行发送                   开始抛出韭菜
⑤释放资源
客户端代码:
接收端步骤:
①创建 DatagramSocket 对象并指定端口(接收端对象)                      接韭菜的人
②创建 DatagramPacket 对象接收数据(数据包对象)                 韭菜盘子
③使用 while 死循环不断的进行第 4
④使用 DatagramSocket 对象的 receive 方法传入 DatagramPacket 对象                 开始接收韭菜
接收端代码:

2.6 UDP的通信方式

2.6.1 单播

单台主机与单台主机之间的通信。

2.6.2 广播

当前主机与所在网络中的所有主机通信

2.6.3 组播

当前主机与选定的一组主机的通信。

2.6.4 UDP如何实现广播

使用广播地址: 255.255.255.255
体操作:
1. 发送端发送的数据包的目的地写的是广播地址、且指定端口。 (255.255.255.255  ,   9999)
2. 本机所在网段的其他主机的程序只要注册对应端口就可以收到消息了。(9999)

2.6.5 UDP如何实现组播

使用组播地址:224.0.0.0 ~ 239.255.255.255
具体操作:
1. 发送端的数据包的目的地是组播IP  (例如:224.0.1.1,  端口:9999)
2. 接收端必须绑定该组播IP(224.0.1.1),端口还要注册发送端的目的端口9999 ,这样即可接收该组播消息。
3. DatagramSocket的子类MulticastSocket可以在接收端绑定组播IP。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/188236.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Docker安装Postgresql

测试环境:Centos7.x docker1.13.1 postgres12本文使用的是在镜像仓库直接pull的方式,非Dockfile的方式。Postgresql的Dockerfile参考:https://github.com/docker-library/postgres/blob/master/12/alpine/Dockerfile常用命令docker命令大全…

MySQL的卸载

步骤1:停止MySQL服务 在卸载之前,先停止MySQL8.0的服务。右击“此电脑“,选择”管理“,可以在“服务”列表找到“MySQL8.0”的服务,如果现在“正在运行”状态,可以右键单击服务,选择“停止”选…

java基础巩固-宇宙第一AiYWM:为了维持生计,大数据之Kafka【Kafka的概念、单机及集群部署】~整起

Rust一、Kafka基本概念1.Kafka是什么?Kafka与Flume?2.Kafka的整体架构:3.kafka的生产者与消费者:4.kafka的Topic与日志、分区【分区可以提高咱们kafka的写入能力和存储能力】5.kafka的顺序写入:6.kafka的零拷贝技术7.k…

MQ 队列消息

消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成,通过提供消息传递和消息排队模型,它可以在分布式环境下拓展进程间的通信,对于消息中间件,常见的角色大致也就有Producer(生产者).Consumer(消费者) MQ 消息中间件 消息队列 …

【数据结构基础】树 - 基础和Overview

知识体系结构树树是一种数据结构,它是n(n>0)个节点的有限集。n0时称为空树。n>0时,有限集的元素构成一个具有层次感的数据结构。区别于线性表一对一的元素关系,树中的节点是一对多的关系。树具有以下特点:n>0时,根节点是…

Linux嵌入式开发——文件权限

文章目录Linux嵌入式开发——文件权限文件权限文件权限管理修改文件权限修改文件所属用户拥有者拥有者组Linux嵌入式开发——文件权限 文件权限 文件权限是指不同的用户或用户组对某个文件拥有的权限,文件的权限分为三种,并且可以使用二进制表示文件权…

kerberos环境下parcel方式部署flink1.15.3 基于CDH6.3.2 Flink on Yarn

1.1 Flink on Yarn的优势相对于 Standalone 模式,在Yarn 模式下有以下几点好处:1.资源按需使用,提高集群的资源利用率;2.任务有优先级,根据优先级运行作业;3.基于 Yarn 调度系统,能够自动化地处…

通信原理笔记—模拟信号的数字编码

目录 低通与带通信号的抽样定理: 模拟信号数字编码的基本概念: 模拟信号的抽样: 低通信号的理想抽样: 低通采样定理: 采样方式: 冲激采样示例: 低通信号的自然抽样: 带通抽样…

正版授权|Charles 4 网络封包分析调试工具软件

Charles 4 是一款 HTTP 代理 /HTTP 监视器/反向代理,使开发人员能够查看其机器和 Internet 之间的所有 HTTP 和 SSL / HTTPS流量。这包括请求、响应和 HTTP 标头(包含 Cookie 和缓存信息)。 授权分类:单许可证 站点许…

Python程序设计-第2章Python程序语句

第2章Python程序语句一.预习笔记 1.1 if语句 if 条件 : 执行语句 注意:条件后面要有 : 号,其次条件不需要括号包裹,然后执行语句需要有缩进 1.2 if else语句 if 条件 : 执行语句1 else : 执行语句2 注意:条件成立执行语…

Vue3中使用Tinymce富文本编辑器(版本最新)

使用目录前言一、安装方法一(npm、yarn下载)二、安装方法二(下载官网压缩包方法)——推荐总结前言 最近使用了WangEditor编辑器和Tinymce编辑器,使用方法如下(采用的编辑器版本是官网最新的) 汉…

@Configuration 和 @Component 区别

本文参考1:https://blog.csdn.net/isea533/article/details/78072133 本文参考2:https://blog.csdn.net/weixin_52850476/article/details/124410800 一句话概括就是 Configuration 中所有带 Bean 注解的方法都会被动态代理,因此调用该方法…

数据库密码定期轮换(AWS版)

问题 需要定期轮换AWS上面的RDS数据库的密码,而且,需要让业务程序无感知。 思路 AWS有个一个aws-secretsmanager-jdbc库,只要在SpringBoot的基础上面集成即可,就可以使用secrets manager来定期轮换数据库的密码了。 解决步骤 …

Excel VBA 讲座05 - InputBox和MsgBox使用

本篇介绍的内容: 1,当用户使用宏或procedure时,使用InputBox来接收或收集用户输入的信息。 2,根据需求使用IF语句构建逻辑。 3,使用Message Box将信息展示给用户,比如用户输出错误,就提示用户…

np.loadtxt()读取数据

前言 机器学习中使用np.loadtxt()可以高效的导入数据,np.loadtxt()适合.txt文件和.csv文件。但是它默认读取float类型的值。 1.np.loadtxt()读取txt文件 1-1 基础参数 numpy.loadtxt(fname, dtype, comments#, delimiterNone, convertersNone, skiprows0, usecol…

uniapp获取支付宝user_id - 支付宝提现 - 登录授权 - APP支付宝登陆 - H5支付宝授权

效果图 uniapp须知(无奈之处) uniapp绑定支付宝user_id提现 - 方法对比: ==== 不同接口 ==== 【APP支付宝登录】 https://opendocs.alipay.com/open/218/105325 【网站支付宝登录】

PMP证书有什么用?

有没有用看你的考证目的,总的来说就是敲门砖的作用,项目招聘、应聘项目经理都需要pmp 证书。⭕但是事在人为,祈祷考完 PMP 就能升职加薪走上人生巅峰的想法,一纸证书是做不到的。PS:身边有考了 PMP 之后跳槽薪资涨幅 3…

阳康后身体还是不舒服怎么办?

很多年轻朋友阳康后恢复的还可以,逐渐回到以前的身体状态,但是家里老人体质偏弱,恢复情况就没那么乐观了。有些还一直伴随着没有嗅觉、疲惫、咳嗽等后遗症。要让老人快速恢复健康,生病后一定要注意这几点:每天保证7-8小…

测试开发中的虫剂悖论

测试开发中的虫剂悖论 1 初识虫剂悖论 提到 虫剂悖论(pesticide paradox),我相信很多人都没听说的,除非是生物学专业的同学或者老师。 虫剂悖论描述的是重复使用某种农药杀灭害虫,时间越久,杀虫的效果就越差。 之所以这样&#xf…

压阻式(压)力传感器-个人笔记

这是个人笔记 最终要求,单个的压阻式压力传感器、阵列之后的压力传感器、三维力传感器 关键词:力传感器,压力传感器,多轴力传感器,应变式传感器,应变式力传感器,电阻应变式传感器,f…