在Java中提供了专门的网络开发程序包---java.net,java的网络编程提供了两种通信协议:TCP(传输控制协议)和UDP(数据报协议)。

一.IP(Internet Protocol) 与InetAddress类

1.IP简介

互联网上的每一台计算机都有一个唯一表示自己的标识,即IP地址。

IP地址=网络地址+主机地址

2.InetAddress

该类主要表示IP地址,有两个子类:Inet4Address、Inet6Address,前者表示IPV4,后者表示IPV6。

InetAddress类的常用方法有:

类型 方法 描述
static InetAddress getByName(Stringhost) 在给定主机名的情况下确定主机的 IP 地址。
static InetAddress

getLocalHost()

返回本地主机。
String getHostName() 获取此 IP 地址的主机名。
boolean isReachable(int timeout) 测试是否可以达到该地址。
测试InetAddress类:
package org.demo.net;

import java.net.InetAddress;
/**
* 测试InetAddress类
* @author oushine
*/
public class InetAddressDemo {
public static void main(String[] args) {
try {
//声明并得到本地InetAddress对象
InetAddress iAddress1=InetAddress.getLocalHost();
//声明并得到远程InetAddress对象
InetAddress iAddress2=InetAddress.getByName("www.baidu.com");
//获得本地IP地址
System.out.println("本机IP地址为:"+iAddress1.getHostAddress());
//获得远程IP地址
System.out.println("百度的IP地址是:"+iAddress2.getHostAddress());
System.out.println("本机是否可达:"+iAddress1.isReachable(3000));
} catch (Exception e) {
e.printStackTrace();
}
} }

结果:

二.URL与URLConnection

1.URL

URL(Uniform Resource Locator)是统一资源定位符,可以直接使用此类找到互联网上的资源(比如一个网页)。

URL类常用方法:

类型 方法 描述
构造方法

URL(String spec)

根据 String 表示形式创建 URL 对象。
构造方法 URL(String protocol, String host, int port, String file) 根据指定 protocolhostport 号和 file 创建 URL 对象。
URLConnection openConnection() 返回一个 URLConnection 对象,它表示到 URL 所引用的远程对象的连接。
InputStream

openStream()

打开到此 URL 的连接并返回一个用于从该连接读入的 InputStream
使用URL读取内容:
package org.demo.net;

import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Scanner; public class UrlDemo {
public static void main(String[] args) {
URL url;
try {
//指定操作的URL
url = new URL("http","www.baidu.com",80,"/index.html");
//打开输入流,读取URL内容
InputStream inputStream=url.openStream();
Scanner scan=new Scanner(inputStream);
//设置读取分隔符
scan.useDelimiter("\n");
while(scan.hasNext()){
//输出内容
System.out.println(scan.next());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

结果:

显示出来的是HTML代码。

2.URLConnection

URLConnection是封装访问远程网络资源一般方法的类,通过它可以建立与远程服务器的连接,检查远程资源的一些属性。

常用方法:

类型 方法 描述
int

getContentLength()

返回 content-length 头字段的值。
String

getContentType()

返回 content-type 头字段的值。
InputStream

getInputStream()

返回从此打开的连接读取的输入流。

URLConnection对象可以通过URL类的openConnection()方法取得。

取得URL的基本信息:
package org.demo.net;

import java.net.URL;
import java.net.URLConnection; public class URLConnectionDemo {
public static void main(String[] args) {
try {
URL url=new URL("http://www.baidu.com");
//建立连接
URLConnection urlConn=url.openConnection();
System.out.println("内容大小:"+urlConn.getContentLength());
System.out.println("内容类型:"+urlConn.getContentType());
} catch (Exception e) {
e.printStackTrace();
}
} }
运行结果:
 

三.URLEncoder与URLDecoder

在java中如果需要完成编码和解码操作就要使用URLEncoder和URLDecoder两个类。

URLEncoder类的方法:

类型 方法 描述
static String encode(String s, String enc) 使用指定的编码机制将字符串转换为 application/x-www-form-urlencoded 格式。

URLDecoder类的方法:

类型 方法 描述
static String decode(String s, String enc) 使用指定的编码机制对 application/x-www-form-urlencoded 字符串解码。
编码及解码操作:
package org.demo.net;

import java.net.URLDecoder;
import java.net.URLEncoder; public class CodeDemo {
public static void main(String[] args) {
String keyWord="oushine 阳";
try {
String enCode=URLEncoder.encode(keyWord, "UTF-8");
System.out.println("编码之后:"+enCode);
String deCode=URLDecoder.decode(enCode, "UTF-8");
System.out.println("解码之后:"+deCode);
} catch (Exception e) {
e.printStackTrace();
} } }

运行结果:

转自:https://www.cnblogs.com/yzl-i/p/4442892.html#top

Java网络编程之InetAddress和URL的更多相关文章

  1. Java网络编程之InetAddress浅析

    Java网络编程之InetAddress浅析 一.InetAddress综述 IP地址是IP使用的32位(IPv4)或者128位(IPv6)位无符号数字,它是传输层协议TCP,UDP的基础.InetA ...

  2. Java网络编程之URL和URI

    Java网络编程之URL与URI 一.URL与URI简介 URI = Universal Resource Identifier 统一资源标志符 URL = Universal Resource Lo ...

  3. Java网络编程之TCP、UDP

    Java网络编程之TCP.UDP 2014-11-25 15:23 513人阅读 评论(0) 收藏 举报 分类: java基础及多线程(28) 版权声明:本文为博主原创文章,未经博主允许不得转载.   ...

  4. Java网络编程之UDP

    Java网络编程之UDP 一.C/S架构中UDP网络通信流程 ①创建DatagramSocket与DatagramPacket对象 ②建立发送端,接收端 ③建立数据包 ④调用Socket的发送.接收方 ...

  5. Java网络编程之URLConnection

    Java网络编程之URLConnecton 一.URLConnection简介 URLConnection是一个抽象类,表示指向URL指定资源的活动连接.URLConnection有两个不同但相关的用 ...

  6. Java网络编程之TCP

    Java网络编程之TCP ​ TCP主要需要两个类:Socket和ServerSocket,Socket是客户端连接服务器时创建,参数需要指定服务器的ip和端口,ServerSocket是服务器端创建 ...

  7. java网络编程之TCP通讯

    java中的网络编程之TCP协议的详细介绍,以及如何使用,同时我在下面举2例说明如何搭配IO流进行操作, /* *TCP *建立连接,形成传输数据的通道: *在连接中进行大数据量传输: *通过三次握手 ...

  8. Java:网络编程之IP、URL

    java.net  类 InetAddress 此类表示互联网协议 (IP) 地址. 会抛出异常 UnknownHostException   直接已知子类:         Inet4Address ...

  9. 3.Java网络编程之IP

    前面两篇博文我们已经简单了解了IP.端口.协议以及两种参考模型,我们现在重新从程序角度来看下这个参考模型. 如果我们从事的是Web网站开发,那么我们应该知道HTML是一种超文本标记语言 (Hyper ...

随机推荐

  1. node爬虫(简版)

    做node爬虫,首先像如何的去做这个爬虫,首先先想下思路,我这里要爬取一个页面的数据,要调取网页的数据,转换成页面格式(html+div)格式,然后提取里面独特的属性值,再把你提取的值,传送给你的页面 ...

  2. RuntimeError: Failed to init API, possibly an invalid tessdata path: E:\python36\报错

    OCR:光学识别符,tesserocr是python中一个OCR识别库,是对tesseract做的一个python的 API封装,所以它的核心是tesseract 在这里我安装的版本是:tessera ...

  3. python安装mysql-connector出错

    windows 7环境 1.进入命令行执行以下命令: C:\Users\Administrator>pip install mysql-connector 注:安装下载较慢,直接失败,改用VPN ...

  4. ps命令查看子进程

    [root@centos7 log]# ps -f -e -o pid,ppid,pgid,comm PID PPID PGID COMMAND 5070 5068 5070 bash 7169 50 ...

  5. VS第一天(一堆错误的错误示范)

    自学VS第一天 (目标用vs做个不low的简历) 学习视频 https://www.bilibili.com/video/av48489320/?p=1 代码 写了一天的代码,自己理解的内容在注释里 ...

  6. 【转】4w+1h 教你如何做用户画像

    记得14年开始做用户画像的时候,对于用户画像完全没有概念,以为是要画一幅幅图画,经过两年多的学习和理解,渐渐的总结出了一些方法和技巧,在这里就通过4个W英文字母开头和1个H英文字母开头的单词和大家分享 ...

  7. 【LeetCode】Symmetric Tree(对称二叉树)

    这道题是LeetCode里的第101道题.是我在学数据结构——二叉树的时候碰见的题. 题目如下: 给定一个二叉树,检查它是否是镜像对称的. 例如,二叉树 [1,2,2,3,4,4,3] 是对称的. 1 ...

  8. PAT Basic 1017

    1017 A除以B(20 分) 本题要求计算 A/B,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数.你需要输出商数 Q 和余数 R,使得 A=B×Q+R 成立. 输入格式: 输入在一 ...

  9. [!] The ‘Pods-项目名XXX' target has frameworks with conflicting names:XXX.framework.

    在集成网易 即时通讯IM时报如下错误: [!] The ‘Pods-Yepu' target has frameworks with conflicting names: nimsdk.framewo ...

  10. 关于面试总结-python笔试题

    关于面试总结4-python笔试题 前言 现在面试测试岗位,一般会要求熟悉一门语言(python/java),为了考验求职者的基本功,一般会出2个笔试题,这些题目一般不难,主要考察基本功. 要是给你一 ...