在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. javaEE(9)_在线支付

    一.目前主要的两种支付方案 二.支付流程 1.用户在提交订单完成选择易宝支付按钮后,会跳转到如下页面选择要支付的银行,如下所示: <!DOCTYPE HTML PUBLIC "-//W ...

  2. 更改ubuntu的官方镜像源

    我们自己安装的ubuntu通常默认镜像源是官方的,并不好用,因为网速以及限制比较多,所以为了使用方便,通常都会去更改一下默认的镜像源配置. 这里我们使用清华大学开源镜像软件站,https://mirr ...

  3. docker的网络(进阶)

    overlay网络 overlay网络驱动程序会在多个docker守护程序(即多个主机上的docker守护程序)之间创建分布式网络.该网络(overlays)位于特定于主机的网络之上,允许连接到它的容 ...

  4. jenkins插件开发(二)

    https://wiki.jenkins.io/display/JENKINS/Extend+Jenkins http://commons.apache.org/proper/commons-jell ...

  5. [译]The Python Tutorial#9. Classes

    写在前面 本篇文章是<The Python Tutorial>(3.6.1),第九章,类的译文. 9. Classes 与其他编程语言相比,Python的类机制定义类时,最小化了新的语法和 ...

  6. Template--模板

    模板引擎的支持 配置 模板引擎配置为TEMPLATES设置.这是一个配置列表,每个引擎一个,默认值为空.这是settings.py生成的,通过startproject命令定义了一个更有用的值: TEM ...

  7. 记如何解决蓝桥杯中to_string和atoi等无法使用的问题

    #include<iostream> #include<sstream> using namespace std; int main() {   // int 转 string ...

  8. POJ:2406-Power Strings(寻找字符串循环节)

    Power Strings Time Limit: 3000MS Memory Limit: 65536K Description Given two strings a and b we defin ...

  9. PAT Basic 1013

    1013 数素数 令P~i~表示第i个素数.现任给两个正整数M <= N <= 10^4^,请输出P~M~到P~N~的所有素数. 输入格式: 输入在一行中给出M和N,其间以空格分隔. 输出 ...

  10. XPath与lxml类库

    有同学说,我正则用的不好,处理HTML文档很累,有没有其他的方法? 有!那就是XPath,我们可以先将 HTML文件 转换成 XML文档,然后用 XPath 查找 HTML 节点或元素. 什么是XML ...