网络编程(三要素 ,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的通信协议

相关推荐
virelin_Y.lin8 分钟前
系统与网络安全------弹性交换网络(2)
网络·安全·web安全·链路聚合·lacp·eth-trunk
天狼122212 分钟前
第5章-1 优化服务器设置
运维·服务器·adb
浪裡遊3 小时前
Linux常用指令
linux·运维·服务器·chrome·功能测试
SugarPPig3 小时前
PowerShell 查询及刷新环境变量
服务器
EasyDSS6 小时前
视频监控从安装到优化的技术指南,视频汇聚系统EasyCVR智能安防系统构建之道
大数据·网络·网络协议·音视频
我的作业错错错6 小时前
搭建私人网站
服务器·阿里云·私人网站
rufeike6 小时前
UDP协议理解
网络·网络协议·udp
王景程6 小时前
如何测试短信接口
java·服务器·前端
江理不变情7 小时前
海思ISP调试记录
网络·接口隔离原则
微网兔子7 小时前
伺服器用什么语言开发呢?做什么用什么?
服务器·c++·后端·游戏