海牛部落 java 系列教程:(17) 网络编程

教程 青牛 ⋅ 于 2017-09-20 14:20:53 ⋅ 最后回复由 海牛hiw 2021-06-20 22:50:22 ⋅ 10959 阅读

file

其中:
ISP:(Internet Service Provider),互联网服务提供商,即向广大用户综合提供互联网接入业务、信息业务、和增值业务的电信运营商。
NAP:是因特网的路由选择层次体系中的通信交换点

file

file

1.3 网络相关概念
MAC地址(MAC Address)
也叫硬件地址,长度是48比特,用来表示互联网上每一个站点的标识符,采用十六进制数表示。
IP地址
IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异,32位整数。
端口
一个16位整数,标志本计算机应用层中的各进程,是应用程序与外界交流的出入口。
网关(Gateway)
又称网间连接器、协议转换器。网关在网络层以上实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关可以是路由器,交换机,或者主机。
DNS(Domain Name System)域名解析
能够将域名解析为IP地址,也能把IP地址解析为域名,正向解析将域名解析为IP地址,反向解析将IP 地址解析为域名。

2 Java 网络编程常用类

2.1 InetAddress类
Java中的InetAddress是一个代表IP地址的封装。IP地址可以由字节数组和字符串来分别表示,InetAddress将IP地址以对象的形式进行封装,可以更方便的操作和获取其属性。
InetAddress没有构造方法,可以通过两个静态方法获得它的对象实例。

static InetAddress getByName(String host)
在给定主机名的情况下确定主机的 IP 地址。
static InetAddress getByAddress(byte[] addr)
在给定原始 IP 地址的情况下,返回 InetAddress 对象。

常用方法:
String getCanonicalHostName()
获取此 IP 地址的完全限定域名。
String getHostAddress()
返回 IP 地址字符串(以文本表现形式)。
String getHostName()
获取此 IP 地址的主机名。
boolean isReachable(int timeout)
测试是否可以达到该地址。 测试是否可以达到该地址。实现尽最大努力试图到达主机,但防火墙和服务器配置可能阻塞请求,使其在某些特定的端口可以访问时处于不可到达状态。

file

2.2 URL 和URLConnection 类
网络中的URL(Uniform Resource Locator)是统一资源定位符的简称。它表示Internet上某一资源的地址。通过URL我们可以访问Internet上的各种网络资源,比如最常见的WWW,FTP站点。
URL可以被认为是指向互联网资源的“指针”,通过URL可以获得互联网资源相关信息,包括获得URL的InputStream对象获取资源的信息,以及一个到URL所引用远程对象的连接URLConnection。
URLConnection对象可以向所代表的URL发送请求和读取URL的资源。

通常,创建一个和URL的连接,需要如下几个步骤:
1)创建URL对象,并通过调用 openConnection() 方法获得 URLConnection 对象;
如果是GET 方式请求,GET方法的参数传递方式是将参数显式追加在地址后面,那么在构造URL对象时的参数就应当是包含了参数的完整URL地址。
如果是POST方式请求,POST方法传递参数时仅仅需要页面URL。

2)设置URLConnection参数和普通请求属性;

3)向远程资源发送请求;
如果只是发送GET方式请求,使用connect方法建立和远程资源的连接即可;
如果是需要发送POST方式的请求,则需要获取URLConnection对象所对应的输出流来发送请求。这里需要注意的是,由于GET方法的参数传递方式是将参数显式追加在地址后面,那么在构造URL对象时的参数就应当是包含了参数的完整URL地址,而在获得了URLConnection对象之后,就直接调用connect方法即可发送请求。而POST方法传递参数时仅仅需要页面URL,而参数通过需要通过输出流来传递。另外还需要设置头字段。

4)远程资源变为可用,程序可以访问远程资源的头字段和通过输入流来读取远程资源返回的信息。

get请求
Get方式在通过URL提交数据,数据在URL中可以看到

url + ? + param
param 是 key1=value1&key2=value2

file

file

file

2.3 URLDecoder 和URLEncoder
HTML 格式解码的实用工具类。

URLEncoder
该类包含了将 String 转换为 application/x-www-form-urlencoded MIME 格式的静态方法

static String encode(String s, String enc)
使用指定的编码机制将字符串转换为 application/x-www-form-urlencoded 格式
参数: enc - 所支持的字符编码名称

URLDecoder
该类包含了将 String 从 application/x-www-form-urlencoded MIME 格式解码的静态方法。

static String decode(String s, String enc)
使用指定的编码机制对 application/x-www-form-urlencoded 字符串解码。
参数: enc - 所支持的字符编码名称
注意:编码和解码的字符编码要一致,否则解出来的是论码。

file

回复帖子,然后刷新页面即可查看隐藏内容

版权声明:原创作品,允许转载,转载时务必以超链接的形式表明出处和作者信息。否则将追究法律责任。来自海汼部落-青牛,http://hainiubl.com/topics/165
本帖由 海牛部落 于 7年前 取消置顶
点赞
成为第一个点赞的人吧 :bowtie:
回复数量: 23
暂无评论~~
  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,可用Emoji的自动补全, 在输入的时候只需要 ":" 就可以自动提示了 :metal: :point_right: 表情列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif,教程
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
Ctrl+Enter