在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. java在线聊天项目0.9版 实现把服务端接收到的信息返回给每一个客户端窗口中显示功能之客户端接收

    客户端要不断接收服务端发来的信息 与服务端不断接收客户端发来信息相同,使用线程的方法,在线程中循环接收 客户端修改后代码如下: package com.swift; import java.awt.B ...

  2. ios 检查内存泄露

    简介 在IPhone程式开发中,记忆体泄漏(内存泄漏)是个很容易发生的情况,因为IPhone必须自行作记忆体管理.现在的开发者,大多习惯用的.NET或Java的等有垃圾回收机制的开发语言来作开发,因此 ...

  3. MySQL 查询优化之 Index Condition Pushdown

    MySQL 查询优化之 Index Condition Pushdown Index Condition Pushdown限制条件 Index Condition Pushdown工作原理 ICP的开 ...

  4. verilog behavioral modeling --loop statement

    1.forever 2.repeat 3.while 4.for The for statement accomplishes the same results as the following ps ...

  5. Django 连接mysql数据库

    首先在settings.py文件里将 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.pat ...

  6. PAT Basic 1014

    1014 福尔摩斯的约会 大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm” ...

  7. 03005_Tomcat

    1.Tomcat下载 (1)Tomcat解压版:链接:Tomcat解压版 密码:0iw0 : (2)源码:链接:源码 密码:3o43 . 2.Tomcat的目录结构 (1)bin:脚本目录   ①启动 ...

  8. cf950f Curfew

    神贪心--写了一个晚上加一个早上. 先考虑只有一个宿管的情况. 首先,如果这个宿舍人多了,多余的人就跑到下一个宿舍.(如果这是最后一个宿舍的话,多的就躺床底下) 如果这个宿舍人少了,但是能从别的宿舍调 ...

  9. luogu2051 [AHOI2009]中国象棋

    巨水,调了好久,心态爆炸 #include <iostream> #include <cstring> #include <cstdio> using namesp ...

  10. jquery插件编写【转载】

    如今做web开发,jquery 几乎是必不可少的,就连vs神器在2010版本开始将Jquery 及ui 内置web项目里了.至于使用jquery好处这里就不再赘述了,用过的都知道.今天我们来讨论下jq ...