Java网络编程之InetAddress和URL
在Java中提供了专门的网络开发程序包---java.net,java的网络编程提供了两种通信协议:TCP(传输控制协议)和UDP(数据报协议)。
一.IP(Internet Protocol) 与InetAddress类
1.IP简介
互联网上的每一台计算机都有一个唯一表示自己的标识,即IP地址。
IP地址=网络地址+主机地址
2.InetAddress
该类主要表示IP地址,有两个子类:Inet4Address、Inet6Address,前者表示IPV4,后者表示IPV6。
InetAddress类的常用方法有:
类型 方法 描述 static InetAddressgetByName(Stringhost)在给定主机名的情况下确定主机的 IP 地址。 static InetAddress
getLocalHost()返回本地主机。 StringgetHostName()获取此 IP 地址的主机名。 booleanisReachable(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)根据指定 protocol、host、port号和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 Stringencode(String s, String enc)使用指定的编码机制将字符串转换为 application/x-www-form-urlencoded格式。
URLDecoder类的方法:
类型 方法 描述 static Stringdecode(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的更多相关文章
- Java网络编程之InetAddress浅析
Java网络编程之InetAddress浅析 一.InetAddress综述 IP地址是IP使用的32位(IPv4)或者128位(IPv6)位无符号数字,它是传输层协议TCP,UDP的基础.InetA ...
- Java网络编程之URL和URI
Java网络编程之URL与URI 一.URL与URI简介 URI = Universal Resource Identifier 统一资源标志符 URL = Universal Resource Lo ...
- Java网络编程之TCP、UDP
Java网络编程之TCP.UDP 2014-11-25 15:23 513人阅读 评论(0) 收藏 举报 分类: java基础及多线程(28) 版权声明:本文为博主原创文章,未经博主允许不得转载. ...
- Java网络编程之UDP
Java网络编程之UDP 一.C/S架构中UDP网络通信流程 ①创建DatagramSocket与DatagramPacket对象 ②建立发送端,接收端 ③建立数据包 ④调用Socket的发送.接收方 ...
- Java网络编程之URLConnection
Java网络编程之URLConnecton 一.URLConnection简介 URLConnection是一个抽象类,表示指向URL指定资源的活动连接.URLConnection有两个不同但相关的用 ...
- Java网络编程之TCP
Java网络编程之TCP TCP主要需要两个类:Socket和ServerSocket,Socket是客户端连接服务器时创建,参数需要指定服务器的ip和端口,ServerSocket是服务器端创建 ...
- java网络编程之TCP通讯
java中的网络编程之TCP协议的详细介绍,以及如何使用,同时我在下面举2例说明如何搭配IO流进行操作, /* *TCP *建立连接,形成传输数据的通道: *在连接中进行大数据量传输: *通过三次握手 ...
- Java:网络编程之IP、URL
java.net 类 InetAddress 此类表示互联网协议 (IP) 地址. 会抛出异常 UnknownHostException 直接已知子类: Inet4Address ...
- 3.Java网络编程之IP
前面两篇博文我们已经简单了解了IP.端口.协议以及两种参考模型,我们现在重新从程序角度来看下这个参考模型. 如果我们从事的是Web网站开发,那么我们应该知道HTML是一种超文本标记语言 (Hyper ...
随机推荐
- passive event 解决方法
为了让页面滚动的效果如丝般顺滑,从 chrome56 开始,在 window.document 和 body 上注册的 touchstart 和 touchmove 事件处理函数,会默认为是 pass ...
- Linux基础学习-数据备份工具Rsync
数据备份工具rsync 作为一个系统管理员,数据备份是非常重要的,如果没有做好备份策略,磁盘损坏了,那么你的数据将全部丢失,所以在日常的维护工作中,一定要时刻牢记给数据做备份. rsync不仅可以可以 ...
- 【php】关于尾部去除和分号问题
One thing to remember is, if you decide to omit the closing PHP tag, then the last line of the file ...
- solr DIH 设置定时索引
1 web.xml中加入 web.xml所在目录 /opt/solr-7.7.1/server/solr-webapp/webapp/WEB-INF <listener> <list ...
- Linux等待队列与唤醒
1.数据结构 1.1等待队列头 struct __wait_queue_head { spinlock_t lock; struct list_head task_list; }; typedef s ...
- wordpress需要FTP用户名密码的问题
wordpress安装删除插件需要FTP用户名密码的问题 方法一: 服务器命令操作: 1.在wordpress目录下面wp-config.php末尾加入下面代码: if(is_admin()) { ...
- HLG 2025
确定大小 Time Limit: 1000 MS Memory Limit: 32768 K Total Submit: 50(15 users) Total Accepted: 12(11 user ...
- iOS第三方地图-高德地图(导航sdk路径规划)
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...
- Codeforces 333E Summer Earnings ——Bitset
[题目分析] 找一个边长最大的三元环. 把边排序,然后依次加入.加入(i,j)时,把i和j取一个交集,看看是否存在,存在就找到了最大的三元环. 输出即可,n^3/64水过. [代码] #include ...
- [BZOJ1594] [Usaco2008 Jan]猜数游戏(二分 + 并查集)
传送门 题中重要信息,每堆草的数量都不一样. 可以思考一下,什么情况下才会出现矛盾. 1.如果两个区间的最小值一样,但是这两个区间没有交集,那么就出现矛盾. 2.如果两个区间的最小值一样,并且这两个区 ...



