网络编程(三要素 ,IP、端口、协议)

news2024/7/4 5:51:33

二、网络三要素:

2.1 IP地址

接下来,我们详细介绍一下IP地址。IP(Ineternet Protocol)全称互联网协议地址,是分配给网络设备的唯一表示。IP地址分为:IPV4地址、IPV6地址

IPV4地址由32个比特位(4个字节)组成,如果下图所示,但是由于采用二进制太不容易阅读了,于是就将每8位看成一组,把每一组用十进制表示(叫做点分十进制表示法)。所以就有了我们经常看到的IP地址形式

我们在命令行窗口输入ipconfig命令,同样可以看到ipv6地址

现在的网络设备,一般IPV4和IPV6地址都是支持的。

下面三类是属于局域网的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 

局域网又称为内网 ...  
内网是可以直接访问 外网的  http://www.baidu.com  访问http://www.qfedu.com

外网是不能直接访问局域网的  可以通过花生壳这种工具做一个内网穿透就可以了...

一个局域网内所有的电脑是可以相互通信的

还可以通过ping命令来查看两个机器之间是否联通

ping 10.7.182.168

本机的ip地址: 127.0.0.1   域名:localhost

如果有需要为本机增加域名配置

C:\Windows\System32\drivers\etc\hosts中去进行配置

2.2 InetAddress类

各位小伙伴,在上一节课我们学习了网络编程的三要素之一,IP地址。按照面向对象的设计思想,Java中也有一个类用来表IP地址,这个类是InetAddress类。我们在开发网络通信程序的时候,可能有时候会获取本机的IP地址,以及测试与其他地址是否连通,这个时候就可以使用InetAddress类来完成。下面学习几个InetAddress的方法。

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.InetAddress;
import java.net.UnknownHostException;

/**
 * @description: 这个类主要就是研究InetAddress的使用
 * @date 2024/3/27  14:15
 */
public class Demo1 {

    public static void main(String[] args) throws IOException {
        //获取主机的地址
        // 是Java提供的一个类 用来对ip地址进行操作(获取  查询 )
        InetAddress inetAddress = InetAddress.getLocalHost();
        System.out.println("主机的名字是:" + inetAddress.getHostName());
        //主机的ip地址是多少
        System.out.println("主机的ip是:" + inetAddress.getHostAddress());
        //下面这个方法相当于是ping这个命令  而且还有一个响应时间 过了响应时间就返回false
        boolean reachable = inetAddress.isReachable(3000);
        System.out.println("判断当前的是否可用:"+reachable);
        InetAddress byName = InetAddress.getByName("www.baidu.com");
        System.out.println("byName:"+byName.getHostAddress());
    }
}

这个端口号实际上是应用的唯一标识

  我们可以通过ip地址找到主机  然后通过端口号 找到具体的应用  端口号可以看成是应用的唯一标识

端口号是有范围的:
   1-65535
这个端口的范围是以后我们开发的时候要使用的这个范围 

1-1024属于系统的紧密端口:简单的说就是这些端口已经被一些服务给使用了...

1024-65535这个范围属于系统的松散端口:系统的松散端口的意思是:这个范围内绝大部分的端口是未使用的状态

以后我们给应用程序设置通信端口的时候 一般情况下 就设置 1024-65535这个范围内

有些人肯定就在想一个问题了... 端口是应用唯一的标识吗?会不会端口给用完呢?  这个端口是不会被用完的  每一个电脑都有 这些端口 我们不可能在一个电脑上 安装6w多个应用....

什么是协议:

  简单的说就是一个有规则的字符串
  
  这个有有规则的字符串 是用来约束 数据在网络中的传输格式的
  
  每一个协议都有自己的着重点(擅长的地方)
  
  TCP和UDP是属于我们的基础协议   其他的应用层协议的底层基本上要么是TCP要么是UDP
  
常见的协议有哪些呢?
   
   TCP  :面向安全的连接 数据不丢失
   
   UDP  :面向无连接  直接发送数据  速度快
   
   HTTP :他牛逼的是 对业务数据的传输格式封装的特别的好
   
   FTP  :文件的传输协议
   
   XMPP : Soul  探探   ....  及时通信的协议
   
   RTSP :流媒体的传输协议    边看边播
   
   SMTP: 邮件的发送协议 
   
   POP3: 邮件的接受协议
   
   RESP: Redis的通信协议

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

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

相关文章

【Qt】:坐标

坐标 一.常用快捷键二.使用帮助文档三.Qt坐标体系1.理论2.代码 一.常用快捷键 注释:ctrl / • 运⾏:ctrl R • 编译:ctrl B • 字体缩放:ctrl ⿏标滑轮 • 查找:ctrl F • 整⾏移动:ctrl shift ⬆/…

常见手撕项目C++

常见手撕项目C 设计模式单例模式饿汉模式懒汉模式 策略模式策略接口实现具体的策略(虚函数重写)定义上下文用户调用 设计模式 单例模式 单例模式是一种常用的软件设计模式,其目的是确保一个类只有一个实例,并提供一个全局访问点来…

HarmonyOS 应用开发之设置任务快照的图标和名称

设置任务快照的图标和名称是为了提高用户界面的可视化性和用户体验,以便更好地管理和跟踪应用程序中的任务和功能。通过为每个任务快照设置不同的图标和名称,可以更轻松地区分和识别每个任务的功能。 默认情况下任务快照的图标和名称采用的是 module.js…

bizcharts中LineChart时间戳使用moment转化出现Invalid Date

文章目录 一、前言1.1、问题1.2、解决 二、bizcharts三、moment.js四、在线源码五、最后 一、前言 1.1、问题 最近在使用bizcharts绘制折线图LineChart的时候,发现X轴的时间显示成了Invalid Date。如下图所示: 发现是后端返回了时间戳字符串"1572…

【HCIP学习】网络类型级数据链路层协议

思维导图在上面哦~ 一、网络类型的分类(4种) 出现原因:数据链路层使用的协议及规则不同,造成了不同的网络类型 1、多点接入网络(MA)------一条网段内上出现多个设备 BMA:广播型多点接入&…

增量式/绝对值式编码器,物体检测技术,位置距离检测技术

系列文章目录 1.元件基础 2.电路设计 3.PCB设计 4.元件焊接 5.板子调试 6.程序设计 7.算法学习 8.编写exe 9.检测标准 10.项目举例 11.职业规划 文章目录 前言一、物体检测技术①、以“光”检测的方式②、以“涡电流”检测的方式③、以“接触”的检测方式④、以“超声波”的…

软考102-上午题-【信息安全】-杂题+小结

一、杂题 真题1: 真题2: 真题3: 真题4: 真题5: 真题6:

基于单片机宿舍防火防盗系统的设计

**单片机设计介绍,基于单片机宿舍防火防盗系统的设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机宿舍防火防盗系统的设计概要主要涉及单片机技术的应用,以实现对宿舍环境的防火和防盗功能的…

蓝桥杯刷题_day7_动态规划_路径问题

文章目录 DAY7下降路径最小和最小路径和地下城游戏 DAY7 下降路径最小和 【题目描述】 给你一个 n x n 的 方形 整数数组 matrix ,请你找出并返回通过 matrix 的下降路径 的 最小和 。 下降路径 可以从第一行中的任何元素开始,并从每一行中选择一个元…

第十四届蓝桥杯省赛C++ C组所有题目以及题解(C++)【编程题均通过100%测试数据】

第一题《求和》【简单模拟】 【问题描述】 求1(含)至20230408(含)中每个数的和。 【答案提交】 这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数&…

brew install 命令详解

1. 前言 Homebrew 是一款 Mac OS 平台非常流行的软件包管理工具 通过一条简单的指令&#xff0c;就可以软件包管理&#xff0c;比如&#xff1a;安装、升级、更新等操作&#xff0c;这也是它这么流行的主要原因 2. 安装 安装软件命令格式 # 安装软件brew install <package…

css简单动画实现

html源码 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>西安工程大学</title><link …

【解决方案】智慧路灯安全用电云平台解决方案

背景介绍 电力作为一种清洁能源&#xff0c;给人们带来了舒适、便捷的电气化生活。与此同时&#xff0c;由于使用不当&#xff0c;维护不及时等原因引发的漏电触电和电气火灾事故&#xff0c;也给人们的生命和财产带来了巨大的威胁和损失。 路灯漏电的主要原因分析&#xff1a…

【基于springboot分析Quartz(v2.3.2)的启动流程】

基于springboot分析Quartz&#xff08;v2.3.2&#xff09;的启动流程 最近公司的定时任务使用了Quartz框架&#xff0c;在开发中经常出现定任务不执行了的问题&#xff0c;但是我又找不到原因所在&#xff0c;可把我愁坏了。于是我决定看看Quartz框架是怎么调度任务的。&#x…

STM32 软件I2C方式读取AS5600磁编码器获取角度例程

STM32 软件I2C方式读取AS5600磁编码器获取角度例程 &#x1f516;本例程使用正点原子例程作为工程模板创建。 &#x1f4d8; 硬件电路部分 &#x1f33f;原理图部分&#xff1a; &#x1f33f;PCB布线和电路 &#x1f4d9;驱动代码部分 int main(void) {u16 i 0;u16 ra…

手动实现一个扩散模型DDPM

扩散模型是目前大部分AIGC生图模型的基座&#xff0c;其本质是用神经网络学习从高斯噪声逐步恢复图像的过程&#xff0c;本文用python代码从零开始构建了一个简单的扩散模型。 理论部分 DDPM(Denoising Diffusion Probabilistic Models) 是一种在生成对抗网络等技术的基础上发展…

【优选算法】双指针 -- 快乐数 和 盛最多水的容器

前言&#xff1a; &#x1f3af;个人博客&#xff1a;Dream_Chaser &#x1f388;刷题专栏&#xff1a;优选算法篇 &#x1f4da;本篇内容&#xff1a;03快乐数 和 04盛最多水的容器 目录 一、快乐数&#xff08;medium&#xff09; 1. 题⽬链接&#xff1a;202. 快乐数 2. …

c++初阶篇----string的底层模拟

string类的模拟 目录 string类的模拟功能介绍各功能的实现类的构造函数&#xff0c;拷贝构造函数&#xff0c;析构函数迭代器的实现string的内部容量访问成员函数string的修改成员函数string类的相关联函数string类的输入输出友元 汇总string功能的实现汇总测试代码 功能介绍 …

鸿蒙实战开发-使用属性动画实现自定义刷新组件

介绍 本篇Codelab主要介绍组件动画animation属性设置。当组件的某些通用属性变化时&#xff0c;可以通过属性动画实现渐变效果&#xff0c;提升用户体验。效果如图所示&#xff1a; 说明&#xff1a; 本Codelab使用的display接口处于mock阶段&#xff0c;在预览器上使用会显示…

element-ui switch 组件源码分享

今日简单分享 switch 组件源码&#xff0c;主要从以下四个方面来分享&#xff1a; 1、switch 组件的页面结构 2、switch 组件的属性 3、switch 组件的事件 4、switch 组件的方法 一、switch 组件的页面结构 二、switch 组件的属性 2.1 value / v-model 属性&#xff0c;绑…