您的位置:首页 > 理论基础 > 计算机网络

01网络编程_网络编程_InetAddress_InetSocketAddress

2017-11-09 10:42 411 查看
一、S02E185_01网络编程_InetAddress_InetSocketAddress





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();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: