01网络编程_网络编程_InetAddress_InetSocketAddress
2017-11-09 10:42
411 查看
一、S02E185_01网络编程_InetAddress_InetSocketAddress
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
二、S02E186_01网络编程_URL爬虫原理
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package com.test.net.ip; import java.net.InetAddress; import java.net.UnknownHostException; /** * 没有封装端口 * InetAddress * 1、静态方法获取对象 * InetAddress.getLocalHost(); * InetAddress.getByName("www.163.com"); * InetAddress.getByName("223.87.1.58"); * 2、方法 * getHostAddress()返回ip地址 * getHostName()返回域名或本机计算机名 */ public class InetAddressDemo01 { public static void main(String[] args) throws UnknownHostException { //使用getLocalHost方法创建InetAddress对象 InetAddress addr = InetAddress.getLocalHost(); System.out.println(addr.getHostAddress());//返回:127.0.0.1 System.out.println(addr.getHostName());//输出计算机名 //根据域名得到InetAddress对象 addr = InetAddress.getByName("www.163.com"); System.out.println(addr.getHostAddress());//返回163服务器ip:61.135.253.15 System.out.println(addr.getHostName());//输出:www.163.com //根据ip得到InetAddress对象 addr = InetAddress.getByName("61.135.253.15"); System.out.println(addr.getHostAddress());//返回163服务器ip:61.135.253.15 //输出ip而不是域名。如果这个ip地址不存在或DNS服务器不允许进行ip地址和域名的映射, //getHostName方法就直接返回这个ip地址 System.out.println(addr.getHostName()); } }1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package com.test.net.ip; import java.net.InetAddress; import java.net.InetSocketAddress; /** * 封装端口:在InetAddress基础上 + 端口 * 创建对象:InetSocketAddress(String hostname, int port) * InetSocketAddress(InetAddress addr, int port) * getAddress()、getHostName()、getPort() */ public class InetSocketAddressDemo01 { public static void main(String[] args) { InetSocketAddress address = new InetSocketAddress("127.0.0.1",9999);//"127.0.0.1"代表本机 System.out.println(address.getHostName());//返回本机名 System.out.println(address.getPort()); InetAddress addr = address.getAddress(); System.out.println(addr.getHostAddress());//返回地址 System.out.println(addr.getHostName());//返回计算机名 } }1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
二、S02E186_01网络编程_URL爬虫原理
package com.test.net.url; import java.net.MalformedURLException; import java.net.URL; /** * 创建 * URL(String spec):绝对路径构建 * URL(URL context,String spec):相对路径构建 */ public class URLDemo01 { public static void main(String[] args) throws MalformedURLException { //绝对路径构建 URL url = new URL("http://www.baidu.com:80/index.html#aa?uname=test");//锚点:#aa System.out.println("协议:" + url.getProtocol()); System.out.println("域名:" + url.getHost()); System.out.println("端口:" + url.getPort()); System.out.println("资源:" + url.getFile()); System.out.println("相对路径:" + url.getPath()); System.out.println("锚点:" + url.getRef());//锚点 //?参数:存在锚点则返回null,否则返回正确 System.out.println("参数:" + url.getQuery()); url = new URL("http://www.baidu.com:80/a/"); url = new URL(url,"b.txt");//相对路径 System.out.println(url.toString()); } }1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package com.test.net.url; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.URL; /** * 获取资源:源代码 * InputStream openStream() */ public class URLDemo02 { public static void main(String[] args) throws IOException { URL url = new URL("http://www.baidu.com");//主页,默认资源 //获取资源 网络流 /*编解码集不统一,出现乱码 InputStream is = url.openStream(); byte[] flush = new byte[1024]; int len = 0; while(-1!=(len=is.read(flush))){ System.out.println(new String(flush,0,len)); } is.close(); */ //使用转换流 BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream(),"utf-8")); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("baidu.html"),"utf-8")); String msg = null; while(null!=(msg=br.readLine())){ //System.out.println(msg); bw.append(msg); bw.newLine(); } bw.flush(); bw.close(); br.close(); } }
相关文章推荐
- 黑马程序员--Java网络编程(InetAddress、DatagramSocket、DatagramPacket)
- java:网络编程(InetAddress,InetSocketAddress,URL,TCP(Socket与SeverSocket),TCP与UDP的区别)
- Java笔记(9)-网络编程、URL、InetAddress、套接字、Socket、ServerSocket、多线程、UDP、广播数据包、远程调用
- [网络编程]——InetAddress_InetSocketAddress
- Java学习之网络编程--InetAddress,InetSocketAddress
- 网络编程_InetAddress_InetSocketAddress_URL_爬虫原理JAVA185-186
- java网络编程: InetAddress类之创建新的InetAddress对象
- java 网络编程 -- IP地址的表示与网络接口信息的获取(InetAddress和NetworkInterface)
- java网络编程(一)InetAddress和NetworkInterface
- Java网络编程之InetAddress
- java网络编程(2)InetAddress 类及udp协议
- 网络socket通信——InetAddress和InetSocketAddress
- 关于linux下网络编程socket 转换IP问题 inet_ntoa()
- java网络编程--IP与InetAddress
- Java网络编程从入门到精通(15):为什么要使用SocketAddress来管理网络地址
- java网络编程之InetAddress
- 网络编程-InetAddress概述与使用
- java网络编程(2)InetAddress 类及udp协议
- 26-网络编程-05-网络编程(IP对象_InetAddress)
- 【网络编程学习笔记01】Socket套接字编程(TCP/IP)