基本网络支持

java.net包主要为网络编程提供支持。

1、InetAddress

InetAddress类代表IP地址,还有两个子类:Inet4Address、Inet6Address。

  1. package net;
  2.  
  3. import java.io.IOException;
  4. import java.net.InetAddress;
  5.  
  6. public class InetAddressTest {
  7.  
  8. public static void main(String[] args) throws IOException {
  9.  
  10. //根据主机获取InetAddress
  11. InetAddress ip = InetAddress.getByName("www.ruandb.top");
  12. //判断IP是否可达
  13. System.out.println("ruandb是否可达:"+ip.isReachable(1000));//ruandb是否可达:false
  14. //获取IP字符串
  15. System.out.println(ip.getHostAddress());//47.98.194.49
  16. //根据Ip地址获取InetAddress
  17. InetAddress local = InetAddress.getByAddress(new byte[] {127,0,0,1});
  18. //判断IP是否可达
  19. System.out.println("ruandb是否可达:"+local.isReachable(2000));//ruandb是否可达:true
  20. //获取InetAddress实例对应的全限定域名
  21. System.out.println(local.getCanonicalHostName());//127.0.0.1
  22.  
  23. }
  24. }

2、URLDecoder和URLEncoder

当URL地址里包含非西欧字符的字符串时,系统会将这些非西欧字符转换成特殊字符串,这中特殊字符串称为 application/x-www-form-urlencoded MIME字符串。

URLDecoder和URLEncoder主要就是用于普通字符串和application/x-www-form-urlencoded MIME字符串的转换。

  1. package net;
  2.  
  3. import java.io.UnsupportedEncodingException;
  4. import java.net.URLDecoder;
  5. import java.net.URLEncoder;
  6.  
  7. public class URLDecoderTest {
  8.  
  9. public static void main(String[] args) throws UnsupportedEncodingException {
  10.  
  11. // 将application/x-www-form-urlencoded MIME字符串转换成普通字符串
  12. String keyWord = URLDecoder.decode("%E5%8C%97%E4%BA%AC%E8%B7%AF","UTF-8");
  13. System.out.println(keyWord);//北京路
  14.  
  15. String urlStr = URLEncoder.encode("北京路", "UTF-8");
  16. System.out.println(urlStr);//%E5%8C%97%E4%BA%AC%E8%B7%AF
  17. }
  18.  
  19. }

3、URL和URLConnection

URL对象代表统一资源定位器,它是指向互联网资源的指针。

JDK中还提供了一个URI类,代表统一的资源标识符,不能用于定位任何资源,它的唯一作用就是解析。

  1. package net;
  2.  
  3. import java.io.IOException;
  4. import java.io.InputStream;
  5. import java.net.URL;
  6. import java.net.URLConnection;
  7.  
  8. public class URLTest {
  9.  
  10. public static void main(String[] args) throws IOException {
  11.  
  12. URL url = new URL("http://10.145.198.143:8081/ords/data_service/eda_src/v1.0/tbAddressTags/count?address=AA");
  13. System.out.println(url.getFile());// 获取URL资源名:/ords/data_service/eda_src/v1.0/tbAddressTags/count?address=AA
  14. System.out.println(url.getHost());// 获取URL主机名:10.145.198.143
  15. System.out.println(url.getPath());// 获取URL路径部分:/ords/data_service/eda_src/v1.0/tbAddressTags/count
  16. System.out.println(url.getPort());// 获取URL端口号:8081
  17. System.out.println(url.getProtocol());// 获取URL协议名称:http
  18. System.out.println(url.getQuery());// 获取URL查询字符串部分:address=AA
  19.  
  20. //获取url连接
  21. URLConnection con = url.openConnection(); ;
  22. try ( InputStream inputStream = con.getInputStream();)//获取资源输入流
  23. {
  24. byte[] bbuf = new byte[1024];
  25. int hasRead = 0;
  26. while((hasRead =inputStream.read(bbuf)) > 0) {
  27. System.out.print(new String(bbuf,0,hasRead));
  28. }
  29. } catch (Exception e) {
  30. e.printStackTrace();
  31. }
  32.  
  33. System.out.println();
  34.  
  35. try ( InputStream input = url.openStream();)//打开连接获取资源输入流
  36. {
  37. byte[] bbuf = new byte[1024];
  38. int hasRead = 0;
  39. while((hasRead =input.read(bbuf)) > 0) {
  40. System.out.print(new String(bbuf,0,hasRead));
  41. }
  42. } catch (Exception e) {
  43. e.printStackTrace();
  44. }
  45.  
  46. }
  47. }

java网络编程基础——基本网络支持的更多相关文章

  1. java网络编程基础——TCP网络编程一

    基于TCP协议的网络编程 TCP/IP协议是一种可靠的网络协议,它的通信的两端各自建立一个Socket,从而在通信的两端之间形成网络虚拟链路. Java使用Socket对象来代表两端的通信端口,并通过 ...

  2. 网络编程基础:网络基础之网络协议、socket模块

    操作系统(简称OS)基础: 应用软件不能直接操作硬件,能直接操作硬件的只有操作系统:所以,应用软件可以通过操作系统来间接操作硬件 网络基础之网络协议: 网络通讯原理: 连接两台计算机之间的Intern ...

  3. java网络编程基础——TCP网络编程二

    1.半关闭的Socket 前面的服务器和客户端通信时总是以行为最小数据单位,但是在某些协议里,通信的数据单位可能是多行的,当出现多行数据时就 出现一个问题:Socket输出流如何表示输出数据已经结束. ...

  4. java网络编程基础——TCP网络编程三

    AIO实现非阻塞通信 java7 NIO2 提供了异步Channel支持,这种异步Channel可以提供更高效的IO,这种基于异步Channel的IO被称为异步IO(Asynchronous IO) ...

  5. 【Java基础】Java网络编程基础知识

    什么是网络编程 网络编程是通过使用套接字来达到进程间通信目的,那什么是套接字呢?其实套接字是支持TCP/IP的网络通信的基本操作单元,可以看做是不同主机之间的进程进行双向通信的端点,简单的说就是通信的 ...

  6. Java网络编程和NIO详解开篇:Java网络编程基础

    Java网络编程和NIO详解开篇:Java网络编程基础 计算机网络编程基础 转自:https://mp.weixin.qq.com/s/XXMz5uAFSsPdg38bth2jAA 我们是幸运的,因为 ...

  7. Java网络编程基础(Netty预备知识)

    今天在家休息,闲来无事,写篇博客,陶冶下情操~~~ =================我是分割线================ 最近在重新学习Java网络编程基础,以便后续进行Netty的学习. 整 ...

  8. 大数据学习笔记——Java篇之网络编程基础

    Java网络编程学习笔记 1. 网络编程基础知识 1.1 网络分层图 网络分层分为两种模型:OSI模型以及TCP/IP网络模型,前者模型分为7层,是一个理论的,参考的模型:后者为实际应用的模型,具体对 ...

  9. java网络编程基础——网络基础

    java网络编程 网络编程基础 1.常用的网络拓扑结构: 星型网络.总线网络.环线网络.树形网络.星型环线网络 2.通信协议的组成 通信协议通常由3部分组成: 语义部分:用于决定通信双方对话类型 语法 ...

随机推荐

  1. Tensor Core技术解析(上)

    Tensor Core技术解析(上) NVIDIA在SIGGRAPH 2018上正式发布了新一代GPU架构--Turing(图灵),黄仁勋称Turing架构是自2006年CUDA GPU发明以来最大的 ...

  2. 一文彻底理解Apache Hudi的多版本清理服务

    Apache Hudi提供了MVCC并发模型,保证写入端和读取端之间快照级别隔离.在本篇博客中我们将介绍如何配置来管理多个文件版本,此外还将讨论用户可使用的清理机制,以了解如何维护所需数量的旧文件版本 ...

  3. 04:Django生命周期流程图

  4. 【图论】用线段树写Dijikstra!!

    速度是没有极限的. 众说周知,Dijikstra是一种最短路算法,复杂度为O(V^2+E) 朴素Dijikstra void Dijikstra(int s){ memset(dis,inf,size ...

  5. css--flex弹性布局详解和使用

    前言 前端开发最基础的能力是根据 ui 设计稿迅速还原页面,拿到设计稿不要急于写代码,首先要对页面进行分析,对页面的整体布局有个大概的了解,然后先实现一个整体的布局,再把布局拆分成逐个小模块,逐个去实 ...

  6. android悬浮窗口

    悬浮窗原理 做过悬浮窗功能的人都知道, 要想显示悬浮窗, 要有一个服务运行在后台, 通过getSystemService(Context.WINDOW_SERVICE)拿到WindowManager, ...

  7. Linux常用命令详解上

    Linux常用命令详解上 目录 一.shell 二.Linux命令 2.1.内部命令与外部命令的区别 2.2.Linux命令行的格式 2.3.编辑Linux命令行的辅助操作 2.4.获得命令帮助的方法 ...

  8. Unity获取系统时间

    示例如下: Debug.Log(System.DateTime.Now); // 当前本地时间 (年月日时分秒) -- 10/4/2018 9:38:19 PM Debug.Log(System.Da ...

  9. 基于xtrabackup的主从同步

    基于xtrabackup的主从同步 作者 刘畅 时间 2020-9-21 服务器版本:CentOS Linux release 7.5.1804 主机名 ip地址 服务器配置 安装软件 密码 mysq ...

  10. codeforces 830E dp

    大致题意: n场比赛,k个钱币.赢一场获得一个钱币,输一场失去一个钱币,一旦钱币数量为2k个或者0个,就马上离开比赛.给出n个长度字符串,由W,D,L,?四个字符组成,W表示赢,L表示输,D表示平局, ...