互联网编程之域名IP转换及应用URL类定位和获取数据编程

这篇具有很好参考价值的文章主要介绍了互联网编程之域名IP转换及应用URL类定位和获取数据编程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

需求

域名解析程序

下载功能程序

断点续传下载


需求

编写域名解析程序(30分):

编写一个可重用的域名解析程序模块,使之能够将用户输入的域名解析为IP地址。

编写下载功能程序(40分):

使用URL类,编写一个可重用的下载程序模块,完成HTML和图像文件的下载。即用户输入一个URL,程序会将URL所指向的网络资源下载到本地,并保存到指定磁盘位置。

编写断点续传下载功能程序(30分):

选择网络上一个较大的文件(如10MB以上),并继续完善2中的文件下载程序,使其具有“断点续传”功能,改写成为一个可重用的具“断点续传”功能的可重用程序模块。

域名解析程序

这段代码是一个域名解析器类,用于将域名解析为对应的 IP 地址。

代码的主要功能如下:

  1. DomainNameResolution() 方法:它接受一个域名作为参数,并返回一个字符串数组,其中包含了该域名所对应的所有 IP 地址。

  2. 在方法内部,通过调用 InetAddress 类的 getAllByName() 方法,传入域名参数,获取到与该域名相关联的所有 InetAddress 对象(即对应的 IP 地址)并存储在 inetAddress 数组中。

  3. 随后,使用一个循环遍历 inetAddress 数组,将每个 InetAddress 对象中的 IP 地址通过调用 getHostAddress() 方法转换成字符串,并存储在 IP 字符串数组中。

  4. 最后,将 IP 字符串数组作为结果返回。

总体而言,这个代码实现了将域名解析为对应 IP 地址的功能。

import java.net.InetAddress;
import java.net.UnknownHostException;

public class DomainNameResolver {
    public String [] DomainNameResolution(String domainName) throws UnknownHostException {
        InetAddress[] inetAddress=InetAddress.getAllByName(domainName);
        String [] IP=new String[inetAddress.length];
        for(int i=0;i<IP.length;i++){
            IP[i]=inetAddress[i].getHostAddress();
        }
        return IP;
    }
}

下载功能程序

这段代码是一个简单的下载器类,用于从指定的 URL 地址下载文件并保存到指定的本地路径。

代码的主要功能如下:

  1. Download() 方法:它接受一个 URL 地址和文件保存路径作为参数,并将通过 HTTP 连接下载的文件保存到本地。

  2. 在方法内部,首先创建一个 HttpURLConnection 对象,将其设置为指定 URL 地址所建立的连接。然后通过调用该连接的 getInputStream() 方法获取输入流,以读取从 URL 下载的数据。

  3. 接下来,创建一个 File 对象,表示要保存的文件,并通过调用 FileOutputStream 构造函数创建一个输出流,以将数据写入文件。

  4. 通过循环不断从输入流中读取数据(每次读取一个字节),并通过输出流将数据写入到文件中,直到读取完毕。

  5. 最后,关闭输出流和输入流,释放资源。

总体而言,这个代码实现了简单的文件下载功能,可以从指定的 URL 下载文件并保存到本地文件系统中。

import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;

public class Downloader {
    public void Download(String url,String path) throws IOException {
        HttpURLConnection connection=(HttpURLConnection) new URL(url).openConnection();
        InputStream input=connection.getInputStream();
        File file=new File(path);
        OutputStream output=new FileOutputStream(file);
        int one;
        while((one=input.read())!=-1){
            output.write(one);
        }
        output.close();
        input.close();
    }
}

断点续传下载

这段代码是一个断点续传的下载器类,用于从指定的 URL 地址断点续传下载文件并保存到指定的本地路径。

代码的主要功能如下:

  1. Download() 方法:它接受一个 URL 地址和文件保存路径作为参数,并实现了断点续传的下载功能。

  2. 在方法内部,首先创建一个 HttpURLConnection 对象,将其设置为指定 URL 地址所建立的连接。然后根据本地文件是否已存在来确定断点续传的起始位置及输出流的构造方式。

  3. 如果文件已存在,则获取已下载的文件大小(即已保存文件的长度),并以追加模式(true)创建 FileOutputStream 对象,以便将数据写入已下载的文件末尾;如果文件不存在,则直接以创建新文件的方式创建 FileOutputStream 对象。

  4. 设置 HTTP 请求头部的 "Range" 属性,指定从已下载的文件末尾开始进行断点续传。

  5. 获取输入流以读取从 URL 下载的数据。

  6. 通过循环不断从输入流中读取数据(每次读取一个字节),并通过输出流将数据写入到文件中,实现断点续传的下载。

  7. 最后,关闭输出流和输入流,释放资源。

总体而言,这个代码实现了断点续传的文件下载功能,可以从指定的 URL 地址断点续传下载文件并保存到本地文件系统中。文章来源地址https://www.toymoban.com/news/detail-528077.html

import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;

public class BPResumeDownloader {
    public void Download(String url,String path) throws IOException {
        HttpURLConnection connection=(HttpURLConnection) new URL(url).openConnection();
        long startBytes=0;
        File file=new File(path);
        OutputStream output;
        if(file.exists()){
            startBytes=file.length();
            output=new FileOutputStream(file,true);
        }else{
            output=new FileOutputStream(file);
        }
        connection.setRequestProperty("Range","bytes="+startBytes+"-");
        InputStream input=connection.getInputStream();
        int one;
        while((one=input.read())!=-1){
            output.write(one);
        }
        output.close();
        input.close();
    }
}

到了这里,关于互联网编程之域名IP转换及应用URL类定位和获取数据编程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 互联网应用的特点及其架构演变

    传统项目: OA、HR、CRM等系统 目标人群:企业员工 特点:项目使用人数较少、并发量相对较少、用户忍耐力较高 互联网项目: 淘宝、天猫、京东 目标人群:互联网 特点:使用人数躲,访问量大,更注重 用户体验 :美观、功能、速度、稳定性 对于互联网项目而言,后端工

    2024年02月06日
    浏览(57)
  • 从 TCP/IP 到 CCIP:Chainlink 与合约的互联网

    未来已来。通过链上金融重塑资本市场预计将影响全球价值 8.67 万亿美元的资产的使用方式。 Chainlink 的跨链互操作性协议(CCIP)将会这一转型过程中发挥重要作用,这是区块链连接性和互操作性的突破,使得 DeFi 应用可以通过单一界面访问用户,并与其他不同区块链上的

    2024年02月14日
    浏览(41)
  • 华为云弹性公网IP服务,为企业敲开互联网大门

    在互联网时代,网络是建立万物互联的桥梁,能让我们人在家中坐,天下事尽知。而用户对公共信息进行访问和浏览时,就需要一个公网IP地址,相应地,网站要提供服务也同样需要公网IP来实现。公网已经成为生活中不可或缺的一部分了。随着云计算服务的日益成熟,越来越

    2024年02月11日
    浏览(46)
  • 【架构】互联网应用开发架构演进历程

    首先我们了解下计算机软件的发展历史,大概总结概括,分为c/s时代,web1.0时代和web2.0时代。 c/s时代:富客户端方案。卖软件可赚钱。​例如 qq、影音、游戏。 1.0时代:主要是单向信息的发布,即信息门户—广大浏览器客户端​ ,互联网内容是由少数编辑人员(或站长)定制的

    2023年04月26日
    浏览(66)
  • “5G+工业互联网”20个典型应用场景

    目录 1、工业研发设计(2个应用场景) 1)协同研发设计   2)生产单元模拟 2、生产运行(5个应用场景) 1)远程设备操控  2)设备协同作业 3)精准动态作业  4)柔性生产制造 5)现场辅助装配 3、检测监测(6个应用场景) 1)机器视觉质检  2)工业合规校验 3)设备故

    2024年02月15日
    浏览(55)
  • 住宅IP:解锁更快速、稳定的互联网,你准备好了吗?

            随着互联网的广泛普及,我们对网络的需求也越来越高。无论是工作、学习还是娱乐,我们都希望能够享受到更快速、稳定的互联网连接。而在实现这一目标的过程中,住宅IP正逐渐崭露头角,成为了一种备受关注的解决方案。那么,住宅IP到底是什么?它为何能

    2024年02月11日
    浏览(45)
  • NFC物联网在互联家庭的应用

    现今越来越多的家庭接入网络。日常家居甚至像灯、吊扇、恒温器等物件也可连接到互联网,使用基于互联网的协议和硬件来控制。物联网(IoT,即越来越多的物品相连的互联网),正在重新定义我们居家的环境,并创造新的方法来管理能源,增加舒适度与提升娱乐。    ​

    2024年02月21日
    浏览(31)
  • 互联网Java工程师面试题·Java 并发编程篇·第五弹

    目录 52、什么是线程池? 为什么要使用它? 53、怎么检测一个线程是否拥有锁? 54、你如何在 Java 中获取线程堆栈? 55、JVM 中哪个参数是用来控制线程的栈堆栈小的? 56、Thread 类中的 yield 方法有什么作用? 57、Java 中 ConcurrentHashMap 的并发度是什么? 58、Java 中 Semaphore 是什么

    2024年02月07日
    浏览(67)
  • 互联网编程之基于 TCP 的单线程文件收发程序(CS架构)

    目录 需求 服务端实现 客户端实现 测试 可试着根据java编程课所学到的java socket编程技术,尝试编写一个基于 TCP 的单线程文件收发程序,需满足: 服务端程序预先定义好需要发送的文件并等待客户端的连接。 客户端连接成功后,服务端将文件发送给客户端,客户端将文件保

    2024年02月12日
    浏览(66)
  • 在树莓派上搭建web站点并发布互联网上线【无需公网IP】

    这非常适合设置您的第一个网站,不仅可以学习管理 wordpress 站点,还可以学习 Linux。您将需要一个树莓派(Raspberry Pi)、几个小时和一台计算机来下载映像。 树莓派(RPI) 是学习这些东西的完美设备。 还可以查看 RaspberryPi 的官方项目站点 来源: https://projects.raspberrypi.org/en/proje

    2024年01月17日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包