网络编程介绍(IP)(一)

定义:可以让设备中的程序与网络上其他设备中的程序进行数据交互(实现网络通信的)。

java.net.*包下提供了网络编程的解决方案。

基本的通信架构:

CS架构( Client客户端/Server服务端 ):

Client客户端:

需要程序员开发。
用户需要安装。

Server服务端:

需要程序员开发实现。

BS架构(Browser浏览器/Server服务端):

Browser浏览器:

不需要程序员开发实现。
用户需要安装浏览器。

Server服务端:

需要程序员开发实现。

无论是CS架构,还是BS架构的软件都必须依赖网络编程!

网络通信的关键三要素之一:

IP:设备在网络中的地址,是唯一的标识。

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

IP地址有两种形式:IPv4、IPv6。

IPv4: 32bit(4字节)点分十进制表示法(如,127.0.0.1)

IPv6: 共128位,号称可以为地球每一粒沙子编号,IPv6分成8段表示,每段每四位编码成一个十六进制 位表示, 数之间用冒号()分开。

公网IP, 内网IP:
公网IP :是可以连接互联网的 IP 地址;
内网IP :也叫局域网 IP ,只能组织机构内部使用。192.168. 开头的就是常见的局域网地址,范围即为 192.168.0.0--192.168.255.255 ,专门为组织机构内部使用。
特殊IP地址:

127.0.0.1、localhost:代表本机IP,只会寻找当前所在的主机。

IP 常用命令:
ipconfig :查看本机 IP 地址。
ping IP 地址:检查网络是否连通。

**InetAddress:**代表IP地址。

|--------------------------------------------------|------------------------------|
| 名称 | 说明 |
| public static InetAddress getLocalHost() | 获取本机IP,会以一个inetAddress的对象返回 |
| public static InetAddress getByName(String host) | 根据ip地址或者域名,返回一个inetAddress对象 |
| public String getHostName() | 获取该ip地址对象对应的主机名。 |
| public String getHostAddress() | 获取该ip地址对象中的ip地址信息。 |
| public boolean isReachable(int timeout) | 在指定毫秒内,判断主机与该ip对应的主机是否能连通 |

java 复制代码
//获取本机IP,会以一个inetAddress的对象返回
InetAddress ip1 = InetAddress.getLocalHost();

//获取该ip地址对象对应的主机名。
ip1.getHostName();

//获取该ip地址对象中的ip地址信息。
ip1.getHostAddress();

//根据ip地址或者域名,返回一个inetAddress对象
InetAddress ip2 = InetAddress.getByName("www.baidu.com");

//在指定毫秒内,判断主机与该ip对应的主机是否能连通
ip2.isReachable(5000);
相关推荐
satan–04 分钟前
R语言的下载、安装及环境配置(Rstudio&VSCode)
开发语言·windows·vscode·r语言
秋夫人8 分钟前
http cache-control
网络·网络协议·http
电饭叔36 分钟前
《python语言程序设计》2018版第8章19题几何Rectangle2D类(下)-头疼的几何和数学
开发语言·python
Eternal-Student37 分钟前
everyday_question dq20240731
开发语言·arm开发·php
极客先躯41 分钟前
高级java每日一道面试题-2024年10月3日-分布式篇-分布式系统中的容错策略都有哪些?
java·分布式·版本控制·共识算法·超时重试·心跳检测·容错策略
卑微求AC1 小时前
(C语言贪吃蛇)11.贪吃蛇方向移动和刷新界面一起实现面临的问题
c语言·开发语言
夜月行者1 小时前
如何使用ssm实现基于SSM的宠物服务平台的设计与实现+vue
java·后端·ssm
程序猿小D1 小时前
第二百六十七节 JPA教程 - JPA查询AND条件示例
java·开发语言·前端·数据库·windows·python·jpa
Yvemil71 小时前
RabbitMQ 入门到精通指南
开发语言·后端·ruby
潘多编程1 小时前
Java中的状态机实现:使用Spring State Machine管理复杂状态流转
java·开发语言·spring