【Java】网络编程基础—InetAddress类和URL编程

🌺个人主页:Dawn黎明开始

🎀系列专栏:Java
每日一句:为了那个远方,你要奋不顾身

📢欢迎大家:关注🔍+点赞👍+评论📝+收藏⭐️


文章目录

一.🔐 InetAddress类

✍目标

(1).🔑常用方法

(2).🔑案例演示

二. 🔐URL编程

✍目标

(1).🔑URL的基本结构

(2).🔑URL类的常用方法

(3).🔑案例演示


一.🔐 InetAddress类

✍目标

熟悉InetAddress类,能够使用InetAddress类的常用方法获取IP地址。

(1).🔑常用方法

Java提供了一个与IP地址相关的InetAddress类,用于封装一个IP地址,并提供了一系列与IP地址相关的方法。

(2).🔑案例演示

下面通过一个案例演示InetAddress类常用方法的使用。

package example;

import java.net.InetAddress;

public class Example01 {
	public static void main(String[] args) throws Exception {
   InetAddress localAddress = InetAddress.getLocalHost();
   InetAddress remoteAddress = InetAddress.getByName("www.itcast.cn");
   System.out.println("本机的IP地址:" + localAddress.getHostAddress());
   System.out.println("www.itcast.cn的IP地址:" + 
			remoteAddress.getHostAddress());
   System.out.println("3秒是否可达主机名为www.itcast.cn的IP地址:" + 
			remoteAddress.isReachable(3000));
	}
}

运行代码,控制台显示的运行结果如下图所示。

二. 🔐URL编程

✍目标

了解URL编程,能够正确使用URL类的常用方法访问指定URL的资源。

URL(Uniform Resource Locator)是统一资源定位器,它表示互联网上某一资源的地址。互联网上的资源包括HTML文件、图像文件、音频文件、视频文件等,只要按照URL规则定义某个资源,网络上的程序就可以通过URL访问它。也就是说,通过URL访问Internet时,浏览器或其他程序通过解析给定的URL就可以在网络上查找到相应的文件或资源。实际上,用户上网时在浏览器地址栏中输入的网址就是一个URL。

(1).🔑URL的基本结构

URL的基本结构由5部分组成,具体格式如下。

传输协议://主机名端口号/文件名#引用

URL基本格式中每个部分的含义如下所示。

(1)传输协议:指所使用的协议名,如HTTP、FTP等。

(2)主机名:指资源所在的计算机名称。主机名可以是IP地址,也可以是计算机的名称或域。

(3)端口号:指定服务占用的端口号。

(4)文件名:指访问的文件名称,包括该文件的完整路径。在HTTP中,有一个默认的文件名index.html,因此下列两个地址是等价的。

http://java.sun.com

http://java.sun.com/index.html

(5)引用:指资源内部的某个参考点,如http://java.sun.com/index.html#page1。  

注意:对于一个URL,并不要求必须包含所有的5个部分。 

(2).🔑URL类的常用方法

Java中定义了一个URL类,用于访问网络上的资源,URL类中定义了一些常用方法,利用这些方法可以得到URL位置本身的数据,或是将URL对象转换成表示URL位置的字符串

(3).🔑案例演示

下面通过一个案例学习URL类中常用方法的使用。具体代码如下所示。

package example;

import java.io.InputStream;
import java.net.URL;
import java.util.Scanner;

public class Example02 {
	public static void main(String[] args) throws Exception {
		URL url = new URL("http", "baidu.com", 80, "/subject/uidszly/index.html");
		InputStream input = url.openStream();
		Scanner scan = new Scanner(input);
		scan.useDelimiter("\n");
		while (scan.hasNext()) {
			System.out.println(scan.next());
		}
	}
}

运行代码,控制台显示的运行结果如下图所示。


🌺如果大家有不明白的地方,或者文章部分内容有问题,欢迎大家在评论区讨论,指正

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【开源】基于Vue.js的独居老人物资配送系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示四、核心代码4.1 查询社区4.2 新增物资4.3 查询物资4.4 查询物资配送4.5 新增物资配送 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的独居老人物资配送系统,包含了社区档案、…

C++模拟实现——红黑树封装set和map

一、红黑树迭代器的实现 基本的框架和实现链表的迭代器思路是一样的,都是对指针进行封装处理,然后实现一些基本的运算符重载,最重要的是operator,需要不递归的实现走中序的规则,这里只实现那最核心的几个基本功能&…

Day35力扣打卡

打卡记录 相邻字符不同的最长路径(树状DP) 链接 若节点也存在父节点的情况下,传入父节点参数,若是遍历到父节点,直接循环里 continue。 class Solution:def longestPath(self, parent: List[int], s: str) -> in…

如何看待人工智能行业发展

随着人工智能技术的飞速发展,这个领域的就业前景也日益广阔。人工智能在各行各业都有广泛的应用,包括医疗、金融、制造业、教育等。因此,对于想要追求高薪、高技能职业的人来说,学习人工智能是一个非常有前景的选择。 首先&#x…

【Python进阶】近200页md文档14大体系知识点,第4篇:linux命令和vim使用

本文从14大模块展示了python高级用的应用。分别有Linux命令,多任务编程、网络编程、Http协议和静态Web编程、htmlcss、JavaScript、jQuery、MySql数据库的各种用法、python的闭包和装饰器、mini-web框架、正则表达式等相关文章的详细讲述。 全套Python进阶笔记地址…

阿里云ECS11月销量王 99元/年

这一波好像真没得说,老用户居然都有份,买来练习、测试冒似已经够了! 阿里云ECS11月销量王 99元/年 2核2G 3M固定带宽不限流量,新老同享,新购、续费同价,开发必备! 活动规则 云服务器ECS 云创季…

读像火箭科学家一样思考笔记03_第一性原理(上)

1. 思维的两种障碍 1.1. 为什么知识会成为一种缺陷而非一种美德 1.1.1. 知识是一种美德 1.1.2. 知识同样的特质也会把它变成一种缺点 1.1.3. 知识确实是个好东西,但知识的作用应该是给人们提供信息,而不是起约束作用 1.1.4. 知识应该启发智慧&#…

程序员告诉你:人工智能是什么?

随着科技的快速发展,人工智能这个词汇已经逐渐融入了我们的日常生活。然而,对于大多数人来说,人工智能仍然是一个相对模糊的概念。 首先,让我们从人工智能的定义开始。人工智能是一种模拟人类智能的技术,它涵盖了多个领…

【Flink】系统架构

DataStream API 将你的应用构建为一个 job graph,并附加到 StreamExecutionEnvironment 。当调用 env.execute() 时此 graph 就被打包并发送到 JobManager 上,后者对作业并行处理并将其子任务分发给 Task Manager 来执行。每个作业的并行子任务将在 task…

微服务调用链路追踪

概述 本文介绍微服务调用链路追踪,涉及技术有:sleuth和zipkin。sleuth负责追踪调用链路数据,zipkin负责调用链路数据可视化展现。 本文的操作是在 服务网关实践 的基础上进行。 环境说明 jdk1.8 maven3.6.3 mysql8 spring cloud2021.0.8 …

Linux socket编程(4):服务端fork之僵尸进程的处理

在上一节利用fork实现服务端与多个客户端建立连接中,我们使用fork函数来实现服务端既可以accept新的客户端连接请求,又可以接收已连接上的客户端发来的消息。但在Linux中,在子进程终止后,父进程需要处理该子进程的终止状&#xff…

人力资源小程序

人力资源管理对于企业的运营至关重要,而如今随着科技的发展,制作一个人力资源小程序已经变得非常简单和便捷。在本文中,我们将为您介绍如何通过乔拓云网制作一个人力资源小程序,只需五个简单的步骤。 第一步:注册登录乔…

练习题——【学习补档】库函数的模拟实现

各种库函数的模拟实现 一、模拟实现strlen1.地址-地址型2.递归型3.计数器型 二、模拟实现strcpy三、模拟实现strcmp四、模拟实现strcat五、模拟实现strstr 一、模拟实现strlen 模拟实现strlen有三种方法 1.地址-地址型 2.递归型 3.计数器型1.地址-地址型 // //1.地址-地址型 …

学霸教你自学人工智能

在这个信息爆炸的时代,人工智能已经渗透到我们生活的方方面面。无论是语音助手、自动驾驶汽车,还是医疗诊断,人工智能都在发挥着越来越重要的作用。如果你对人工智能充满热情,希望在这个领域有所建树,那么,…

STM32CubeMX学习笔记-CAN接口使用

STM32CubeMX学习笔记-CAN接口使用 CAN总线传输协议1.CAN 总线传输特点2.位时序和波特率3.帧的种类4.标准格式数据帧和遥控帧从STM32F407参考手册中可以看出主要特性如下CAN模块基本控制函数CAN模块消息发送CAN模块消息接收标识符筛选发送中断的事件源和回调函数 CubeMX项目设置…

庖丁解牛:NIO核心概念与机制详解 04 _ 分散和聚集

文章目录 Pre概述分散/聚集 I/O分散/聚集的应用聚集写入Code Pre 庖丁解牛:NIO核心概念与机制详解 01 庖丁解牛:NIO核心概念与机制详解 02 _ 缓冲区的细节实现 庖丁解牛:NIO核心概念与机制详解 03 _ 缓冲区分配、包装和分片 概述 分散/聚…

C++二分查找算法:有序矩阵中的第 k 个最小数组和

本文涉及的基础知识点 二分查找算法合集 本题的简化 C二分查找算法:查找和最小的 K 对数字 十分接近m恒等于2 题目 给你一个 m * n 的矩阵 mat,以及一个整数 k ,矩阵中的每一行都以非递减的顺序排列。 你可以从每一行中选出 1 个元素形成…

FPGA_IIC代码-正点原子 野火 小梅哥 特权同学对比写法(3)

FPGA_IIC代码-正点原子 野火 小梅哥 特权同学对比写法(3) 工程目的IIC时序图IIC 读写操作方法汇总正点原子IIC实验工程整体框图和模块功能简介,如表下图所示: IIC 驱动模块设计时钟规划状态跳转流程单次写操作的波形图如下图所示&…

程序员带你入门人工智能

随着人工智能技术的飞速发展,越来越多的程序员开始关注并学习人工智能。作为程序员,我们可能会对如何开始了解人工智能感到困惑。今天,我将向大家介绍一些如何通过自学了解人工智能的经验和方法,帮助大家更好地入门这个充满挑战和…

【Java集合】聊聊Hashmap的哈希函数、扩容、树化

哈希函数 hashmap是开发中常用的一个集合,除了一些基本的属性、put、get等流程,本篇文章主要介绍下哈希函数、扩容、树化的一些细节。 而hash函数就是hashmap的重中之重。 static final int hash(Object key) {int h;return (key null) ? 0 : (h key…
最新文章