现在让我们(快乐的)来学习java中的网络编程
一、认识InetAddress
1.首先通过查阅API帮助文档
我们知道,InetAddress是net包下的一个类,表示互联网协议(IP)地址。
2.然后我们往下查看它的常用方法
对于一个方法,阅读的时候要注意,功能、需要我们提供给方法的值的类型、返回值的类型,大体了解后继续往下走。
3.接下来我们通过一段代码来学习InetAddress
package 网络编程;
import java.net.InetAddress;
import java.net.UnknownHostException;
public class InetAddressTest {
public static void main(String[] args) throws UnknownHostException {
InetAddress[] ips = InetAddress.getAllByName("www.baidu.com");
for(InetAddress ip:ips) {
System.out.println(ip);
}//ips作为百度的ip地址的集合,用for循环输出
System.out.println("==============");
InetAddress ip = InetAddress.getByName("localhost");//返回本机ip
System.out.println(ip);
System.out.println("==============");
InetAddress ip2 = InetAddress.getLocalHost();//同样是返回本机ip
System.out.println(ip2);
System.out.println(ip2.getHostName());//输出本机名
}
}
运行结果为:
www.baidu.com/119.75.217.109
www.baidu.com/119.75.217.26
==============
localhost/127.0.0.1
==============
DESKTOP-BN6OHT3
二、URL的学习
1.查阅帮助文档
URL是net包下的一个类,URL的中文名是统一资源定位符,外文名是Uniform Resource Locator,具体可分成几个部分:
(1)协议
(2)文件所在的服务器的名称或IP地址,后面是到达这个文件的路径和文件本身的名称。
2.查看常用构造方法和常用方法
3.然后通过一个代码来实践里面提到的方法
package 网络编程;
import java.io.*;
import java.net.MalformedURLException;
import java.net.URL;
public class URLTest {
public static void main(String[] args) throws IOException {
URL url = new URL("https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=0&rsv_idx=1&tn=baidu&wd=URL&rsv_pq=ecf631580002d369&rsv_t=c3e1xfOEvgtYFqWVscp62vOHgsWPJkqOCcx4upAeKgEpmAUoFaYG4e3itMI&rqlang=cn&rsv_enter=1&rsv_sug3=2&rsv_n=2");
//输出url的协议名
System.out.println("1 "+url.getProtocol());
//输出此url的主机名
System.out.println("2 "+url.getHost());
//输出url端口号(注:访问客户端端口号时只会返回0和-1
System.out.println("3 "+url.getPort());
//获取与此 URL 关联协议的默认端口号。
System.out.println("4 "+url.getDefaultPort());
//输出url的路径部分
System.out.println("5 "+url.getPath());
//输出url的查询部分
System.out.println("6 "+url.getQuery());
//输出此url的文件名(也就是路径和查询的合体)
System.out.println("7 "+url.getFile());
System.out.println("================================");
//打开到此 URL 的连接并返回一个用于从该连接读入的输入流
InputStream is = url.openStream();
FileWriter fw = new FileWriter("d:/lin/god.txt");
//BufferedReader类能从字符输入流中读取文本,缓冲各个字符,实现高效读取
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line = null;
while((line=br.readLine())!=null) {
fw.write(line);
fw.write("\n");
}
br.close();
is.close();
fw.close();
}
}
输出结果为:
1 https
2 www.baidu.com
3 -1
4 443
5 /s
6 ie=utf-8&f=8&rsv_bp=0&rsv_idx=1&tn=baidu&wd=URL&rsv_pq=ecf631580002d369&rsv_t=c3e1xfOEvgtYFqWVscp62vOHgsWPJkqOCcx4upAeKgEpmAUoFaYG4e3itMI&rqlang=cn&rsv_enter=1&rsv_sug3=2&rsv_n=2
7 /s?ie=utf-8&f=8&rsv_bp=0&rsv_idx=1&tn=baidu&wd=URL&rsv_pq=ecf631580002d369&rsv_t=c3e1xfOEvgtYFqWVscp62vOHgsWPJkqOCcx4upAeKgEpmAUoFaYG4e3itMI&rqlang=cn&rsv_enter=1&rsv_sug3=2&rsv_n=2
================================
下面的是将信息读取到了一个txt文档中,在此不显示,当然也可以直接的添加到一个空的.html文档中,只要改变编码模式,能基本复原原网页框架。
三、TCP和UDP协议特点
1.TCP–就想打电话,可靠传输
2.UDP协议–就像写信,寄邮件,不能保证可靠传输,但是速度快。
//先写这些,明后两天补充第三