12.3-全栈Java笔记:Java网络编程
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了12.3-全栈Java笔记:Java网络编程相关的知识,希望对你有一定的参考价值。
Java为了可移植性,不允许直接调用操作系统,而是由java.net包来提供网络功能。Java虚拟机负责提供与操作系统的实际连接。
InetAddress
作用:封装计算机的IP地址和DNS(没有端口信息!)。
特点:这个类没有构造函数。如果要得到对象,只能通过静态方法:getLocalHost、getByName、 getAllByName、 getAddress、getHostName。
【示例1】使用getLocalHost方法创建InetAddress对象
InetAddress addr = InetAddress.getLocalHost(); System.out.println(addr.getHostAddress()); // 返回:192.168.1.110 System.out.println(addr.getHostName()); // 输出计算机名 |
【示例2】根据域名得到InetAddress对象
InetAddress addr = InetAddress.getByName("www.163.com"); // 返回 163服务器的IP:61.135.253.15 System.out.println(addr.getHostAddress()); //输出:www.163.com System.out.println(addr.getHostName()); |
【示例3】根据IP得到InetAddress对象
InetAddress addr = InetAddress.getByName("61.135.253.15"); //返回 163服务器的IP:61.135.253.15 System.out.println(addr.getHostAddress()); /*输出ip而不是域名。如果这个IP地 址不存在或DNS服务器不允许进行IP地址和域名的映射,getHostName方法就直接返回这个IP地址。*/ System.out.println(addr.getHostName()); |
InetSocketAddress
作用:包含IP和端口,常用于Socket通信。
【示例4】InetSocketAddress的使用
InetSocketAddress socketAddress = new InetSocketAddress("127.0.0.1",8080); InetSocketAddress socketAddress2 = new InetSocketAddress("localhost",9000); System.out.println(socketAddress.getHostName()); System.out.println(socketAddress2.getAddress()); |
URL类
IP地址唯一标识了Internet上的计算机,而URL则标识了这些计算机上的资源。类URL
代表一个统一资源定位符,它是指向互联网“资源”的指针。资源可以是简单的文件或目录,也可以是对更为复杂的对象的引用,例如对数据库或搜索引擎的查询。
为了方便程序员编程,JDK中提供了URL类,该类的全名是java.net.URL,有了这样一个类,就可以使用它的各种方法来对URL对象进行分割、合并等处理。
【示例5】URL类的使用
URL u = new URL("http://www.google.cn:80/webhp#aa?canhu=33"); System.out.println("获取与此url关联的协议的默认端口:"+u.getDefaultPort()); System.out.println("getFile:"+u.getFile()); //端口号后面的内容 System.out.println("主机名:"+u.getHost()); //www.google.cn System.out.println("路径:"+u.getPath()); //端口号后,参数前的内容 System.out.println("端口:"+u.getPort()); //如果www.google.cn:80则返回80.否则返回-1 System.out.println("协议:"+u.getProtocol()); System.out.println("参数部分:"+u.getQuery()); System.out.println("锚点:"+u.getRef()); // System.out.println(u.sameFile(u2)); //两个URL不同,则返回false.
// URLConnection conn = u.openConnection(); // InputStream is = u.openStream();
URL u1 = new URL("http://www.abc.com/aa/"); URL u2 = new URL(u,"2.html"); //相对路径构建url对象 System.out.println(u2.toString()); //http://www.abc.com/aa/2.html |
【示例6】最简单的网络爬虫
void basicSpider() { URL url = null; InputStream is = null ; BufferedReader br=null; StringBuilder sb = new StringBuilder(); String temp = ""; try { url = new URL("http://www.baidu.com"); is = url.openStream(); br = new BufferedReader(new InputStreamReader(is));
while((temp = br.readLine())!=null){ sb.append(temp); //这样就可以将网络内容下载到本地机器。然后进行数据分析,建立索引。这也是搜索引擎的第一步。 } System.out.println(sb); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally{ try { br.close(); } catch (IOException e) { e.printStackTrace(); } try { is.close(); } catch (IOException e) { e.printStackTrace(); } } } |
「全栈Java笔记」是一部能帮大家从零到一成长为全栈Java工程师系列笔记。笔者江湖人称 Mr. G,10年Java研发经验,曾在神州数码、航天院某所研发中心从事软件设计及研发工作,从小白逐渐做到工程师、高级工程师、架构师。精通Java平台软件开发,精通JAVAEE,熟悉各种流行开发框架。
笔记包含从浅入深的六大部分:
A-Java入门阶段
B-数据库从入门到精通
C-手刃移动前端和Web前端
D-J2EE从了解到实战
E-Java高级框架精解
F-Linux和Hadoop
本文出自 “12931675” 博客,请务必保留此出处http://12941675.blog.51cto.com/12931675/1946245
以上是关于12.3-全栈Java笔记:Java网络编程的主要内容,如果未能解决你的问题,请参考以下文章