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

二、网络三要素:

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的通信协议

相关推荐

  1. 网络协议要素是什么

    2024-03-30 13:10:05       29 阅读
  2. 网络编程介绍(二)(端口、通信协议

    2024-03-30 13:10:05       30 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-30 13:10:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-30 13:10:05       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-30 13:10:05       82 阅读
  4. Python语言-面向对象

    2024-03-30 13:10:05       91 阅读

热门阅读

  1. 第十六章 Redies

    2024-03-30 13:10:05       37 阅读
  2. Ubuntu安装nginx-http-flv,并获取统计信息

    2024-03-30 13:10:05       46 阅读
  3. 《责任链模式(极简c++)》

    2024-03-30 13:10:05       43 阅读
  4. 使用verilog实现俄罗斯方块游戏

    2024-03-30 13:10:05       39 阅读
  5. pyinstaller将文件内容打包到可执行文件本身中

    2024-03-30 13:10:05       39 阅读
  6. Ubuntu服务器搭建 - 环境篇

    2024-03-30 13:10:05       36 阅读
  7. RabbitMQ的部分模式

    2024-03-30 13:10:05       35 阅读
  8. 关于学习编程和技术的自述

    2024-03-30 13:10:05       40 阅读
  9. 每日更新5个Python小技能 | 第六期

    2024-03-30 13:10:05       37 阅读